ブロックの呼び出し方

30分プログラム、その219。サブルーチンの呼び方を調べてみる。
id:hassylinさんから、

$f->(@_)を使われてますが、 &$fにしない理由とかあれば教えていただけると勉強になります。

というツコッミをうけたので調べてみた。

まず、リファレンス経由でサブルーチンを呼び出す場合、以下の3つの方法がある。

my $f = sub { ... };

&f(LIST);   # デリファレンスして呼び出す
$f->(LIST); # ->を使うと&を省略できる
&$f;        # 現在の@_をサブルーチンに渡す

最後の()を省略すると、@_が引数になるというのが実にPerlらしい。