バイオインフォマティクス初心者の日常

バイオインフォマティクス関連の研究・勉強などなど

perlの "autodie" を使ってみた

perlではファイルを開くときに、

open(FILE,"open_file") or die "Can't open file!!";

こんな書き方をすることが多かったのですが、"or die" だとエラーが発生しても、"Can't open file!!" という自分が書き込んだ情報しか得られず、デバッグが非常にやりづらかった。
そこで、もっといい方法を探すと、"autodie" というものを使うと、より詳細なエラー情報を返してくれるようになったので、その紹介をします。

従来のファイルの開き方とエラーコード例

open(FILE,"open_file") or die "Can't open file!!";

これをエラーが発生するように実行すると、
f:id:sy-41211:20151212165030p:plain
というエラーコードが出力され、自分が書き込んだ情報とエラーが発生した場所の情報のみが出力される。

"autodie" を利用したファイルの開き方とエラーコード例
"use autodie" でperl標準モジュールである "autodie" が利用可能になる。

use autodie;
open(FILE,"open_file");

これを同様にエラーが発生するように実行すると、
f:id:sy-41211:20151212165516p:plain
というエラーコードが出力され、従来の "or die" のやり方と比較すると、開こうとしたファイルやエラーの種類等の情報も付加されている。"autodie" を利用することで、"or die" でエラー情報を書き込む手間が省ける上に、より詳細なエラー情報を取得することができる。

perlでプログラムを書くときには、必須の "use strict" と "use warnings" に加えて、"use autodie" も加えるといいだろうなと思います。

参考サイト
autodie - search.cpan.org
autodie - perldoc.jp (日本語説明)