Как читать файлы в каталоге, открывать его и получать слова для каждой строки в Perl? - PullRequest
1 голос
/ 27 декабря 2010

я пытаюсь написать скрипт на Perl, сначала он открывает каталог (в каталоге более одного файла), второй он читает файлы в каталоге затем строка за строкой помещает слова в массив и отправляет эти слова в программу на c ++ в качестве аргумента. я пытался написать скрипт, но при обработке файлов возникла проблема, он открывает каталог, но я не могу получить доступ к файлам,

должно быть более одного ответа на эту проблему, мой сценарий:

my $directory = '.';
my @connection;
opendir (DIR, $directory) or die $!;

    while (my $file = readdir(DIR)) {
            next if ($file =~ m/^\./);
            print "$file\n";
            open (MYFILE, '$file') or die $!;# error is in here, can not open/
            while (<MYFILE>)
            {
            # split each input line; words are separated by whitespace
                    for $word (split)
                    {
                            #put the words in an array
                            #no need to store words, can be overwritten in array
                            #system() for calling c++ code
                    }
            }
    }

1 Ответ

2 голосов
/ 27 декабря 2010

Удалите кавычки '' вокруг $file:

open (MYFILE, $file) or die $!;

В Perl одинарные кавычки будут заключать строку в кавычки буквально и ничего не интерпретировать.Вам нужно использовать двойные кавычки, если вы хотите интерпретировать экранированные символы и имена переменных.Тем не менее, в этом случае, когда у вас есть только переменная и ничего больше, вы не должны заключать ее в кавычки, даже если технически "$file" является правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...