小ネタ:関数ブロックでnext使うと悲しい事になる 2011年2月23日 15:54 D | ブログ記事のURL | コメント(0) | トラックバック(0) use strict; sub foo { my $n = shift; next if $n > 5; warn $n; } foreach my $x ( 1..10 ) { foo( $x ); } これで嵌った。問題は当然 "next"。ループの中で呼ばれるfooの中で"next"を使ってるので fooに5以上を渡すと外側のforeachを抜けてしまうのだ。 理由が分かってみればなるほど、だったけど、これはしばらく嵌った。ちなみにuse warningsしてると "Exiting subroutine via next" っていう警告がでるよ!良い子はnextの変わりにreturnを使ってね! カテゴリ 日常 タグ perl