加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

为什么perl会抱怨不同类型警告的不同行?

发布时间:2020-12-15 23:23:35 所属栏目:大数据 来源:网络整理
导读:Perl通常会抱怨实际错误,例如当变量只使用一次时: use warnings;if ( 0 ) {} elsif ( $test ) { } # line 3# Name "main::test" used only once: possible typo at testt.pl line 3. 这对于使用未初始化的$_的警告不起作用: use warnings;if ( 0 ) { # lin
Perl通常会抱怨实际错误,例如当变量只使用一次时:

use warnings;
if ( 0 ) {
} elsif ( $test ) { } # line 3
# Name "main::test" used only once: possible typo at testt.pl line 3.

这对于使用未初始化的$_的警告不起作用:

use warnings;
if ( 0 ) { # line 2
} elsif ( chomp ) { }
# Use of uninitialized value $_ in scalar chomp at testt.pl line 2.

use warnings;
if ( 0 ) { # line 2
} elsif ( m/test/ ) { }
# Use of uninitialized value $_ in pattern match (m//) at testt.pl line 2.

是什么导致这个?这种行为何时有用?

解决方法

perldoc perl5101delta:

The line numbers for warnings inside
elsif are now correct.

请注意,此更改仅影响elsif;您仍会看到运行时错误/警告给出语句的开头或结尾行号而不是违规代码的实际行:

$perl
use warnings;
0 ? do {
} : $test ? do {
} : do { };

0 ? do {
} : chomp() ? do {
} : do { };
Name "main::test" used only once: possible typo at - line 3. # correct
Use of uninitialized value $_ in scalar chomp at - line 8.   # incorrect

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读