unlessとif文の続き。

a = nil
unless a
  puts "false"
else
  puts "true"
end

ifとは逆でfalseだったら配下の処理が実行される。
そういえば、Perlにもあったなぁ。Perlにもあったといえば、

a = true
b = 1 if a
puts b

1が出力される。if修飾子と言うらしい。
あぁ、思い出した。Perlにまつわる辛い思い出を。
時は数年前、世間は猫も杓子もホームページ。私が勤める会社もせっせとホームページを作っていました。私はASPでシコシコとやっていたのですが、それが突如、Perlで書かれたCGIのメンテナンスをやることになりました。始めて見るPerlは記号だらけ、呪文のようでした。半泣きになりながらも、どうにかこうにか納品したことを思い出しました。ああああああ。
それはそうと、if修飾子でfalseが返される場合はどうなるのか。

a = false
b = 1 if a
puts b

nilが出力される。
当然、unlessでもいけるだろう。

a = false
b = 1 unless a
puts b

1が出力される。