teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

$@の内容について補足

2021/01/21 05:32

投稿

angel_p_57
angel_p_57

スコア1681

answer CHANGED
@@ -5,4 +5,6 @@
5
5
  で、C++やJavaでのtry~catch、Pythonでのtry~except、Rubyでのbegin~rescueのような例外捕捉を行うのが、Perlの場合evalということになります。
6
6
  `eval{main()};`のように、evalブロックで囲んでいる場合、その中の処理で例外がdieにより発生すると、異常終了ではなく、例外の内容が特殊変数`$@`に保存されます。つまり、このケースでは"send() fail:"という文字列が`$@`に入っていることになりますので、別途 print や say で出力すればコンソール等で確認できます。
7
7
 
8
- 参考: [https://perldoc.jp/func/die](https://perldoc.jp/func/die)
8
+ 参考: [https://perldoc.jp/func/die](https://perldoc.jp/func/die)
9
+
10
+ 補足: `$@`には、dieで指定した例外の内容だけでなく、エラー発生個所(ソースファイル・行数)も追加されて保存されますので、適切に内容を追うことでトラブル発生個所の割り出しに役立ちます。