代入文と||論理演算子
Perlでは、代入文に『||』論理演算子が繋がる構文がよくあります。
これは、代入文の右側の『||』で繋がれたもの達で、左から順に 真 を返したものが、代入文の左側に代入されます。
代入文の左側 = 代入文の右側1 || 代入文の右側2 || 代入文の右側3;
tstans.plソース
$ans = &aaa() || &bbb() || &ccc(); print $ans, "\n"; sub aaa { return "0"; } sub bbb { return "0"; } sub ccc { return "ccc"; }
tstans.pl実行
$ tstans.pl ccc
ちなみに、||論理演算子でなくor論理演算子では、優先順位の関係で上記の構文は不可です。
また、Perlの場合の文字列の偽は『""』と『"0"』で、これ以外は 真 です。
スカラー値は、その値が空文字列か数値の 0 (あるいは同値な文字列``0'') 以外の場合には、ブール値の真として扱われます。
http://www.kt.rim.or.jp/~kbk/perl5.005/perldata.html#Scalar_values