まくまくPerlノート
サブルーチンへのリファレンスを取得する
2008-05-18

サブルーチンへのリファレンスは、サブルーチン名の前に \& を付けて取得します。

my $ref = \&greet;

サブルーチンのリファレンスを使ってサブルーチンを呼び出す(デリファレンス)には次のようにします(配列リファレンス、ハッシュリファレンスのデリファレンスと同様です)。

&$ref('Jack');   # この方法でも呼び出せるが、
$ref->('Jack');  # こちらの方法でも OK(こちらのが好まれる)

ただし、リファレンスが配列変数などに格納されている場合は、括弧の結合位置を明確にするために次のように中括弧 {} を補って記述しなければいけません。

&{$refs[0]}('Jack');
2008-05-18