パラメータをテストする方法について少し混乱しています。以下に投稿されたソース コードから 2 つの例を示します。まずはこれ
if(!defined($DBHdl) || !defined($acct_no));
未定義のパラメータをテストする方法は?
第二に、ハッシュリファレンスに割り当てた後
$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;
}