perl -le 'print &{sub {if (1) {return do {1;1;}}}}'

perl -le 'print &{sub {for (1) {return do {1;1;}}}}'
1
perl -le 'print &{sub {if (1) {return do {1;}}}}'
1

一つ目の出力がおかしいんですが、どなたか説明できますか?