Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果未定义Perl,则提供DBI查询结果的预期结果_Perl - Fatal编程技术网

如果未定义Perl,则提供DBI查询结果的预期结果

如果未定义Perl,则提供DBI查询结果的预期结果,perl,Perl,我正在创建一个大型脚本,执行一系列检查,以执行一些后端自动化并同步某些数据库 作为查询的一部分,我只想通过使用if(未定义(… 当我向存在的查询添加名称时,我没有收到预期的消息empty result,并且执行了else语句。为了验证此操作是否有效,我使用if(未定义)(withif(定义了,它打印了相关消息并跳过了else语句。这是我所期望的 但问题是。如果我对数据库中不存在的名称运行查询,它不会打印消息空结果。我遗漏了什么,或者我误解了的函数If(defined/(not defined?您

我正在创建一个大型脚本,执行一系列检查,以执行一些后端自动化并同步某些数据库

作为查询的一部分,我只想通过使用
if(未定义(…

当我向存在的查询添加名称时,我没有收到预期的消息
empty result
,并且执行了
else
语句。为了验证此操作是否有效,我使用
if(未定义)(
with
if(定义了
,它打印了相关消息并跳过了
else
语句。这是我所期望的


但问题是。如果我对数据库中不存在的名称运行查询,它不会打印消息
空结果
。我遗漏了什么,或者我误解了
的函数If(defined/(not defined

您无法循环找到的结果。请尝试类似的方法

my $found = 0;
while ( my ( $name ) = $sth->fetchrow ) {
    $found = 1;
    # do stuff when name is found
}
if ( not $found ) {
    print "empty result\n";
}

您打印出$sth->fetchrow()的返回值了吗?如果是,结果是什么?@Jens通过执行
print$sth
?通过执行
print$sth->fetchrow()
@Jens它什么也不打印。如果它什么也不打印,则表示它已定义,但为空
my $found = 0;
while ( my ( $name ) = $sth->fetchrow ) {
    $found = 1;
    # do stuff when name is found
}
if ( not $found ) {
    print "empty result\n";
}