Ваша опечатка фактически делает вас на один шаг ближе к открытию файла правильным способом, а именно, используя рекомендованную форму с тремя аргументами open .
use strict;
use warnings;
open(my $log, '<', "logfile.txt") or die "Open failed : $logfile : $!";
while (<$log>) {
...
}
Этот подходлучше, потому что ваш дескриптор файла может храниться в лексической переменной (а не в глобальном имени, таком как LOG
).Это обеспечивает дополнительное преимущество в автоматическом закрытии файла, когда лексическая переменная выходит из области видимости.Кроме того, лексические дескрипторы файлов могут передаваться между подпрограммами с использованием более знакомого синтаксиса.