Это должен быть комментарий, но размещение кода в комментариях на самом деле не работает, поэтому я делаю это CW.
Вот как написать «лучше» для некоторого значения лучше:
#!/usr/bin/perl
use strict; use warnings;
my $logs_file = 'logspath.txt';
open my $FILE, '<', $logs_file
or die "Cannot open '$logs_file': $!";
while ( my $dir = <$FILE> ) {
print $dir and chomp $dir;
opendir my $dir_h, $dir
or die "Cannot open directory '$dir': $!";
# do something with $dir_h
}
Короче говоря, используйте лексические дескрипторы файлов и каталогов, используйте форму трех аргументов open и включите имя файла или директории, которые вы пытались открыть в сообщении об ошибке, заключенном в кавычки или скобки чтобы увидеть, что на самом деле было передано на open или opendir call.