当我运行脚本时,出现错误:
Use of uninitialized value in die at /usr/local/bin/tacms/subscriptionScheduler.pl line 101.
Died at /usr/local/bin/tacms/subscriptionScheduler.pl line 101.
第 101 行是以下行:
$contentRow = $contentSth->fetchrow_hashref() or die $dbh->errstr;
澄清一下,当我更改关键字时会出现此错误。如果我VERSETEST AND QUOTETEST
使用我的测试关键字,则不会收到此错误。但是当我使用关键字VERSE and QUOTE
时,我会遇到此错误。
有人可以帮我解决这个问题吗?
没有更多行要返回时,fetchrow_hashref
返回undef
是完全正常的。 既然$dbh->errstr
也回来了undef
,那一定是发生了什么。
这就是为什么我通常将 RaiseError
属性设置为 true 的原因,这样我就不必在每次调用 DBI 后检查错误。 这样,我知道当fetchrow_hashref
返回undef
时,它表示结果的结束而不是错误。
如果不使用 RaiseError
,可以按如下方式检查错误:
unless ($contentRow = $contentSth->fetchrow_hashref()) {
die $dbh->errstr if defined($contentSth->err);
print "No more resultsn"; # if we get here
}