Kev*_*Kev 2 perl undefined defined perl5.10
在win32上运行ActiveState Perl 5.10.1.
这段代码怎么样:
die(defined($r->unparsed_uri =~ '/(logout.pl)?$'));
Run Code Online (Sandbox Code Playgroud)
...死了1,而改变同一行说这个:
die($r->unparsed_uri =~ '/(logout.pl)?$');
Run Code Online (Sandbox Code Playgroud)
......死了Use of uninitialized value in die?
它是如何defined还uninitialized?我认为未初始化意味着未定义.
在第一种情况下,匹配操作在标量上下文中进行.在第二种情况下,它发生在数组上下文中,几乎就像你写的那样:
my @groups = $r->unparsed_uri =~ '/(logout.pl)?$';
die @groups;
Run Code Online (Sandbox Code Playgroud)
如果$r->unparsed_uri匹配模式,但$1未定义,因为匹配的字符串以"/"结尾,则@groups将是一个长度为1的数组,包含单个元素undef.
把它们放在一起,就像你说的那样:
die(undef);
Run Code Online (Sandbox Code Playgroud)