Perl で警告の冗長性を高める方法はありますか? これを使用して警告を生成します。
#!/usr/bin/perl -w
たまに叩く下記が特に気になります。Perl が初期化されていない変数の名前を出力できる方法はありますか?
Use of uninitialized value in printf at ./script.pl line 106, <LOG> line 323805.
Perl 5.10 以降にアップグレードすると、これが試行されます。5.14 が最新です。
Friedo が言うように、古いバージョンの perl を使用しているようです。ただし、 を使用したデバッグprint
は非常に簡単で、「ローテク」なテクニックであることを知っておく必要があります。次のような行がある場合:
printf "%-10s %-10s %s %s", $var1, $var2, @array;
また、どちらの変数にも配置するのが難しい警告が表示されます。いつでも分割できます。
printf "%-10s ", $var1;
printf "%-10s ", $var2;
printf "%s %s", @array;
その後、より具体的な警告が表示されます。
または、少しクリエイティブになって、次のことを行うこともできます。
sub no_undef {
my @return;
push @return, map { defined $_ || "undef" } @_;
return @return;
}
printf "%-10s %-10s %s %s", no_undef($var1, $var2, @array);
#!/usr/bin/perl
use diagnostics;
#or
#use diagnostics -verbose;
これにより、より多くの情報が得られます。
http://perldoc.perl.org/diagnostics.html