gpt4 book ai didi

perl - 给定许多变量来测试定义性,如何(轻松)找出 undefined variable ?

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

今天看到这样一段代码:

if (    not defined($reply_address) 
or not defined($from_name)
or not defined($subject)
or not defined($date) )
{
die "couldn’t glean the required information!";
}
(Jeffrey Friedl,“掌握正则表达式”,第 59 页,第 3 版。)
我想“我怎么知道哪个变量没有触发?”
当然,如果只有 4 个变量要测试,如上例所示,可以想出:
if ( not defined $reply_address ) 
{
die "\$reply_address is not defined"
}
elsif ( not defined $from_name )
{
die "\$from_name is not defined"
}
elsif ...
但是如果有 14 个变量呢?还是40……?
还需要遍历所有这些,手动测试每一个?
难道没有一种更短、更“神奇”的方式来告诉哪个变量没有定义?

最佳答案

您可以创建一个表来简化一点:

use strict;
use warnings;

my $reply_address = "xyz";
my $from_name;
my $subject = "test";
my $date;

my @checks = (
[\$reply_address, '$reply_adress'],
[\$from_name, '$from_name'],
[\$subject, '$subject'],
[\$date, '$date'],
);

for my $check (@checks) {
if (not defined ${$check->[0]}) {
die $check->[1] . " is not defined";
}
}

关于perl - 给定许多变量来测试定义性,如何(轻松)找出 undefined variable ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67840976/

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