有沒有辦法增加Perl中警告的詳細程度? 我用它來產生警告。增加Perl警告的詳細程度
#!/usr/bin/perl -w
我對偶爾碰到的以下內容特別感興趣。反正Perl有打印未初始化變量的名字嗎?
Use of uninitialized value in printf at ./script.pl line 106, <LOG> line 323805.
有沒有辦法增加Perl中警告的詳細程度? 我用它來產生警告。增加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是最新的。
#!/usr/bin/perl
use diagnostics;
#or
#use diagnostics -verbose;
這會給你更多的信息!
http://perldoc.perl.org/diagnostics.html
正如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);