サブルーチンへのリファレンスは、サブルーチン名の前に \&
を付けて取得します。
my $ref = \&greet;
サブルーチンのリファレンスを使ってサブルーチンを呼び出す(デリファレンス)には次のようにします(配列リファレンス、ハッシュリファレンスのデリファレンスと同様です)。
&$ref('Jack'); # この方法でも呼び出せるが、
$ref->('Jack'); # こちらの方法でも OK(こちらのが好まれる)
ただし、リファレンスが配列変数などに格納されている場合は、括弧の結合位置を明確にするために次のように中括弧 {}
を補って記述しなければいけません。
&{$refs[0]}('Jack');