sub BLOCK
sub NAME
sub NAME BLOCK
sub NAME
sub NAME BLOCK
subは、サブルーチン定義で使われ、本質的には関数ではありません。NAME(とプロトタイプや属性)のみの場合は、前方定義です。NAMEなしの場合は、無名関数定義であり、値を返します。
subの使い方
sub foo;
sub foo {}
$x = sub { ... };
sub foo($;);
sub foo($;) { }
$x = sub($;) { ... };