Error.pmっていうモジュールのソースを読んでて気がついたこと。関数のリファレンスに引数を渡すのに、
my $f = sub {return shift};
print $f->("Hello\n");
なんて書けるの知らなかった(--;。
後、wantarray。よく、真か偽のどちらかを返すと書かれているけど、実は違った。正確には、1か''かundefのどれか。例えば一行に関数だけを裸で書いた場合は、コンテキストが不明となり、undefが返る。
sub wt_test { print (defined wantarray ? wantarray() . "\n" : "undef") }
@t = wt_test;
$t = wt_test;
wt_test;
結果
1
undef