みなさん、Perl書いてますか?
文字列処理が得意なPerlの使いドコロといえば、FASTQファイルを処理したり、TSVファイルを処理したり、とにかくファイル操作が多いです。
Perlでは、ファイルハンドルの作成に、open関数を使いますが、
この時、ファイルを読み込めたかどうかをチェックしたい場合が多いです。
よく書くのが以下の例です。
[selfDie.pl]
open my $FH_HOGE, '<', $ARGV[0] or die "Error: Cannot open $ARGV[0]"
これでも良いのですが、複数のファイルを開いたり、閉じたり、
開いたりしていると、「or die "Error: Cannot open $ARGV[0]"」を何回も書くのは、煩わしくなってきます。
そんなときは、冒頭で「use autodie;」と書いておきましょう。
「autodie」は標準モジュールなのですが、組み込み関数の例外を上手く処理してくれる大変便利なモジュールです。
[spewDie.pl]
use autodie;
open my $FH_HOGE, '<', $ARGV[0]
これを実行するとperl spewDie.pl hoge.txtCan't open 'hoge.txt' for reading: 'そのようなファイルやディレクトリはありません' at sampleperl.pl line 3
このように勝手にdieしてくれます。素敵ですね。
use strict;use warnings;use autodie;use utf8;
僕は、この4つをテンプレートに入れています。例外処理を細かく書かないのであれば、とりあえず書いておくのがお勧めです。