Почему Perl просто дает мне последнюю строку в файле? - PullRequest
1 голос
/ 10 января 2010

Я скачал следующий файл: rawdata_2001.text

и у меня есть следующий код perl:

open TEXTFILE, "rawdata_2001.text";
while (<TEXTFILE>) {
    print;
}

Это, однако, печатает только последнюю строку в файле. Есть идеи почему? Любая обратная связь будет принята с благодарностью.

Ответы [ 2 ]

7 голосов
/ 10 января 2010

Файл отформатирован только с возвратом каретки, поэтому он засасывается одной строкой. Вы должны иметь возможность установить $ / в "\ r", чтобы он читал построчно. Затем вы должны снять возврат каретки с помощью chomp и обязательно напечатать новую строку после строки.

6 голосов
/ 10 января 2010

ваш файл, вероятно, использует "\r" окончания строки, но ваш терминал ожидает "\n" или "\r\n". попробуйте запустить:

open my $textfile, '<', "rawdata_2001.text" or die;
while (<$textfile>) {
    chomp;
    print "$_\n";
}

Вы также можете поэкспериментировать с изменением разделителя входных записей перед циклом с помощью local $/ = $ending;, где $ending может быть "\n", "\r\n", "\r"

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