真と偽

perlでは変数が数値としても、文字列としても振る舞うことは文字列として比較する - rderaログで述べたが、それに関連してperlでは何を真と決め、何を偽と決めているかについて学びます。

perlでは数値の場合、0以外を真、0を偽としています。
つまり、

if (100) {
  #実行される
}

if (1) {
  #実行される
}

if (0) {
  #実行されない
}

という感じになります。


文字列の場合、空文字列("")は偽、それ以外は真としています。
ということで、

if ("") {
  #実行されない
}

if ("a") {
  #実行される
}

となります。

応用例

100が真で、""が偽。論理和なので真になります。

if (100 or "") {
  #実行される
}

0が偽で、"abc"が真。論理積なので偽になります。

if (0 and "abc") {
  #実行されない
}