Text:: Ошибка автоформат в Perl
Я получил следующий скрипт Perl, который печатает содержимое файлов в каталоге:
#!/usr/bin/perl -w
use strict;
use warnings;
use Text::Autoformat;
my $NER = "$ARGV[0]/Data/NER_$ARGV[1]";
foreach my $fp (glob("$NER/*")){
if (-s $fp){
# Open file to read
open my $fz, "<", $fp or die;
binmode $fz, ":encoding(UTF-8)";
while(my $row = <$fz>){
chomp($row);
print "$row\n";
}
close $fz or die;
}
}
Сценарий работает нормально, но при каждом открытии нового файла появляется следующее предупреждение:
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
Use of uninitialized value in join or string at /usr/local/share/perl5/Text/Autoformat/Hang.pm line 182, <$fz> line 1.
...
Это пример файлов, которые печатаются:
22-22 today DATE
25-25 NY LOCATION
Это ошибка в модуле http://p3rl.org/Text::Autoformat?
1 ответ
Решение
То, что вы наблюдаете, является нормальным, а также вы просили об этом: -w
Опция switch включает глобальные предупреждения.
Вы должны просто использовать лексические предупреждения (прагма use warnings
) в Perl 5.6 и более поздних версиях, поэтому удалите опциональный переключатель.