有没有办法增加Perl警告的冗长程度? 我用它来生成警告。
#!/usr/bin/perl -w
我对偶尔遇到的以下内容特别感兴趣。无论如何,Perl可以打印未初始化变量的名称吗?
Use of uninitialized value in printf at ./script.pl line 106, <LOG> line 323805.
答案 0 :(得分:9)
如果您升级到Perl 5.10或更高版本,它将尝试。 5.14是最新的。
答案 1 :(得分:2)
#!/usr/bin/perl
use diagnostics;
#or
#use diagnostics -verbose;
这将为您提供更多信息!
http://perldoc.perl.org/diagnostics.html
答案 2 :(得分:2)
正如弗鲁多所说,听起来你有一个较旧的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);