gpt4 book ai didi

perl - 在 Perl 中,一个值可以未初始化但仍被定义吗?

转载 作者:行者123 更新时间:2023-12-02 06:25:03 29 4
gpt4 key购买 nike

在 win32 上运行 ActiveState Perl 5.10.1。

这段代码是怎么回事:

die(defined($r->unparsed_uri =~ '/(logout.pl)?$'));

...死于 1,而将同一行更改为:

die($r->unparsed_uri =~ '/(logout.pl)?$');

...死于 Use of uninitialized value in die

它是如何定义未初始化的?我认为未初始化意味着未定义。

最佳答案

在第一种情况下,匹配操作发生在标量上下文中。在第二种情况下,它发生在数组上下文中,几乎就像您写的一样:

my @groups = $r->unparsed_uri =~ '/(logout.pl)?$';
die @groups;

如果 $r->unparsed_uri 匹配模式,但是 $1 未定义,因为匹配的字符串以“/”结尾,那么@groups 将是一个长度数组1,包含单个元素undef

把它们放在一起,就好像你在说:

die(undef);

关于perl - 在 Perl 中,一个值可以未初始化但仍被定义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187638/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com