MTでPerlを学ぶ(その10・真偽の判断)

「MTでPerlを学ぶ」の第10回をお送りします。
今回は、「if ($x) { ・・・ }」のように、比較演算子を使っていないif文の意味を解説します。

1.真偽に応じて処理を変える

if文では比較の演算子を使うことが多いですが、比較の演算子を使わないで、以下のように書くこともよくあります。

if ($x) {
    各種の処理
}

この場合、変数$xの値が「真」とみなせる値であれば、ブロック内(各種の処理)が実行されます。
一方、変数$xの値が「偽」とみなせる値であれば、ブロック内は実行されません。

2.Perlでの「真」と「偽」

Perlでは、以下の値は「偽」とみなされます。

  • 数値の0
  • 長さ0の文字列
  • 文字の「0」
  • 未定義値

逆に、上記以外の値は、すべて「真」とみなされます。

3.真偽の確認

以下のプログラムで、変数$xに代入する値を変えてみて、真/偽のどちらが表示されるかを確認してみてください。

$x = 0;
if ($x) {
    print "$xは真です";
}
else {
    print "$xは偽です";
}

上記を含むインデックステンプレートのサンプルをダウンロード