Perlにおける真偽 おいぬま日報(不定期)さんの記事で、 でもこれは下記のように書くことが出来ます。 sub func { my %args = @_; my $hoge = $args{hoge} || 'fuga'; # なんか処理 } なんとこれを知っているだけで3行もコードが節約出来るんです。 とあって、短く書けてエレガントです。 これだけでも97%ぐらいはかまわないのですが、使い続けるとはまりどころがあります。 &func(hoge=>0); &func(hoge=>""); として、$hogeに0や""を入れたい場合がそれ。 なぜなら、0や""がブール値コンテキストにおいて、偽となるからです。 Perlにおける真偽の規則は、らくだ本から引用ですが、 1. ""と"0"を除き、すべての文字列は真である 2. 0を除き、すべての数値は真である 3. すべてのリファレンスは真である