2

スクリプトを実行すると、次のエラーが発生します。

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と、このエラーが発生します。

誰かが私がこれを解決するのを手伝ってもらえますか?

4

1 に答える 1

6

返す行がなくなったときに がfetchrow_hashref戻るのはまったく正常です。も戻ってきたundefので、それが起こったことに違いありません。$dbh->errstrundef

これが、RaiseErrorDBI を呼び出すたびにエラーをチェックする必要がないように、通常属性を true に設定する理由です。そうすれば、fetchrow_hashref戻り値がundefエラーではなく結果の終わりを示していることがわかります。

を使用しない場合はRaiseError、次のようにエラーを確認できます。

unless ($contentRow = $contentSth->fetchrow_hashref()) {
  die $dbh->errstr if defined($contentSth->err);
  print "No more results\n"; # if we get here
} 
于 2012-06-18T09:06:28.237 に答える