gpt4 book ai didi

perl - 何时使用定义

转载 作者:行者123 更新时间:2023-12-01 07:14:01 25 4
gpt4 key购买 nike

我有点困惑以哪种方式测试参数。这是下面发布的源代码中的两个示例。首先是这个
if(!defined($DBHdl) || !defined($acct_no));
测试未定义参数的方法?

二、分配给一个hashref后
$ptMtrRecRef = $ptSelHdl->fetchrow_hashref;
是测试 $ptMtrRecRef 的最佳方式被定义为使用
if(!$ptMtrRecRef)
或者
if(!defined($ptMtrRecRef)) ?

###############################################################################
# Returns count of meters per account number.

# $PkNam -- package name discarded
# $DBHdl -- ICS database handle
# $acct_no -- water account number

sub mgbl_get_meter_count
{
my ($PkNam, $DBHdl, $acct_no) = @_;

die("mgbl_get_meter_count passed undef handles.\n")
if(!defined($DBHdl) || !defined($acct_no));

my $ptSelHdl;
my $ptMtrRecRef;

my $sql_statement =
"select count(*) from meter m where m.acct_no = ".$acct_no.";";

$ptSelHdl = $DBHdl->prepare($sql_statement);

die("Cannot prepare select count(*) from meter m\n")
if(!$ptSelHdl || !$ptSelHdl->execute);

$ptMtrRecRef = $ptSelHdl->fetchrow_hashref;

return $ptMtrRecRef;
}

最佳答案

$sth->fetchrow_hashref要么返回 undef或对哈希的引用。像这样

if (defined($row))


if ($row)

在这里是等价的。 ( undef 是假的,而引用始终是真的。)我选择了更简单的替代方案。

相同的想法 $dbh->prepare .

关于perl - 何时使用定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19387708/

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