IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

Perlで返り値を安易に補完しない方が良かった話

   

@nqounetです。

何故か変にはまってしまったことがあったので、またうっかりしないようにメモしておきます。

配列を返すメソッドを呼ぶ時に、安全策のつもりでこんな感じで書いてました。

$self->array が失敗した時に空の配列にしたかったのですが、これが罠でした。

以下のコードを実行してみるとどのようになるでしょうか?

実行すると、画面に表示されるのは 3 になります。

安易に補完せず、このように書くと 1 2 3 という表示になります。

配列を期待しているところでは、返り値だけでなく、返り値がなかった時の対策についてもちゃんと考えておきましょう。

respo

respo link

ZenBackWidget

 - 情報技術について