wantarrayの返り値

Perlベストプラクティス 5.8章のメモ。

wantarrayはコンテキストによって返り値がかわる。コンテキストには、リスト、スカラー、voidコンテキストがあるが、それらに対してwantarrayは、真、長さ0の文字列、undefを返す。なので、voidコンテキストであることを調べるには、definedを使わないとだめ。

croak 'Useless use of this in void context'
    unless defined wantarray;

voidコンテキストでの不適切な構文の仕様を警告する例外を書くのは、Perlの世界ではヨクアルコトらしいけど、知らんかったんで。てか、voidコンテキストてほとんど意識してないわ。