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 и более поздних версиях, поэтому удалите опциональный переключатель.

Другие вопросы по тегам