gpt4 book ai didi

如果变量设置为 undef,perl 会死,对吗?

转载 作者:行者123 更新时间:2023-12-05 09:35:19 31 4
gpt4 key购买 nike

许多 Perl 库在内部失败时返回 undef。
以 DBI 为例:

my $result = $sth->fetchrow_hashref();

为了简单地在一行中停止我的程序(在顶级调用者处有一个评估),因为这个独特的结果总是与我相关,看看是否一切正常,并且比 try/catch 更轻,我可以总是写:

my $result = $theLibraryCall or die "ERROR ..." 

它也适用于值 0。

最佳答案

# Dies if f() returns any false value (incl, but not limited to, undefined)
my $result = f()
or die ...;

# Dies if f() returns an undefined value
defined( my $result = f() )
or die ...;

# Dies if f() returns nothing at all
my ($result) = f()
or die ...;

如您所见,my $result = f() or die ...; 不仅会因未定义的值而死,还会因所有假值而死。

要仅在返回未定义值时死亡,请使用以下之一:

defined( my $result = f() )
or die ...;
my $result = f()
// die ...;

请注意,它们略有不同。第一个在检查之前执行赋值,而另一个在赋值之前执行检查。

关于如果变量设置为 undef,perl 会死,对吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65919825/

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