Новое на perl (и язык вообще), и зашли так далеко, как OPEN FH
. Немного путают следующие два сценария (выходы разные, но я не мог понять, почему второй «ошибочный»).непонимание файлового дескриптора (или массива?) В perl?
Сценарий 1
#! usr/bin/perl
use warnings;
use strict;
open FILE, "example.txt" or die $!;
while (<FILE>) {
print $_;
}
Скрипт2
#! usr/bin/perl
use warnings;
use strict;
open FILE, "example.txt" or die $!;
my @array = <FILE>;
while (<FILE>) {
print $_;
}
example.txt содержит 3 строки предложения. Когда я назначаю filehandle FILE
массиву, вдруг $_
станет пустым ??
Если я заменить <FILE>
в while
цикле с массивом (@array
), цикл не может остановиться и $_
становится «неинициализированным значение».
Это, пожалуй, очень основное недоразумение filehandle
и массив, но кто-то может помочь объяснить их - на простом английском языке -? Или укажите на ссылки, где я мог бы найти больше информации (несколько ссылок можно найти и проконсультировались с ними, но, очевидно, я все еще не мог понять, почему сценарии 2 (и 3) неверны). Большое спасибо.
http://perlmaven.com/reading-from-a-file-in-scalar-and-list-context –
Большое спасибо за показ perlmaven !! –
Похоже, Сухой27 решил вашу проблему, но хочу отметить, что в Perl это распространенная идиома, использующая три-arg open: open my $ fh, '<', 'file.txt' или die "Can 't открыть файл: $! "; – stevieb