die()によるメッセージから行番号を除く

Perlにおいて、例外処理としてdie()をevalでキャッチして、その処理の中でdie()の引数として渡した文字列を利用する場合があると思います。例えば、次のようなコードになります。

$ vim die_test
#!/usr/bin/perl

eval {
    die "Exception occurred";
};
if ($@) {
    print $@;
}

このスクリプトを実行すると、

$ ./die_test
Exception occurred at die_test line 4.

というアウトプットがコンソールに表示されると思います。エラー表示だけならば特に問題はありませんが、メッセージを他の処理で利用したい場合、「at die_test line 4」の部分が邪魔くさくなります。これを防ぐ方法は実はシンプルで、die()の引数のメッセージの最後に改行コード(\n)を加えるだけです。

#!/usr/bin/perl

eval {
    die "Exception occurred\n";
};
if ($@) {
    print $@;
}
$ ./die_test
Exception occurred

コメントを残す

Required fields are marked *.


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Top