次のコードを理解しようとしています。
sub foo {
...
if ( $@ ) {
...
die $@;
}
}
構文エラーや実行時エラーが発生した場合、または「die」ステートメントが実行された場合、「eval」によって未定義の値が返され、エラー メッセージに $@ が設定されます。エラーがなければ、$@ は null 文字列であることが保証されます。
も参照してくださいperldoc perlvar
。
$@
eval
もしあれば、最後のコマンドのエラーメッセージを含むマジック変数です。
$@ をトラップできるようにするには、if ループの前に eval を付ける必要があります。
eval() の間、$@ は常に失敗時に設定され、成功時にクリアされます。
eval() 内の whr コードがコンパイルされなかった場合、$@ はコンパイル エラーに設定されます。