ちょっと前に作ったプログラムを見ていて、悪い習慣だなぁ、と思ったので、改めるためにメモ。 Perlを覚えていく中で、関数の返り値を偽として判定させたいときは「undefを返す」という事をやっていた。 return undef; しかし、これは返り値を配列で受け取るときに微妙になり、わかりにくいバグを発生させてしまう原因にもなる。 どういう場合に問題になるかを、実際にコードを書いて試してみる。 # utf8 use 5.8.1; use strict; use warnings; use utf8; use Perl6::Say; use Data::Dumper qw/Dumper/; my $charset = 'cp932'; binmode STDOUT => ":encoding($charset)"; sub return_less { my $a = 1; } sub ret