Perlで配列の長さ
Perlにおいて配列の長さは単に配列@arrayに対してscalar(@array)とすれば良い. つまり文脈がはっきりしていれば, そのまま@arrayで良い.
一方で, $#arrayとしたときは配列の最大インデックスを返すので, 長さは($#array+1)となる.
というわけで, 一見して気持ち悪いが, ($#array==0)は配列がちょうど1つだけ要素を含むかどうかの真偽値だ. 読み手のことを考えると(@array==1)と同じ.
Perlにおいて配列の長さは単に配列@arrayに対してscalar(@array)とすれば良い. つまり文脈がはっきりしていれば, そのまま@arrayで良い.
一方で, $#arrayとしたときは配列の最大インデックスを返すので, 長さは($#array+1)となる.
というわけで, 一見して気持ち悪いが, ($#array==0)は配列がちょうど1つだけ要素を含むかどうかの真偽値だ. 読み手のことを考えると(@array==1)と同じ.