Perlでは、サブルーチンへのリファレンスを作って変数に格納することができます。
例
use strict;
sub greets {
print "hello\n";
}
my $ref = \&greets;
この例では、greetsサブルーチンへのリファレンスを、$refに格納しています。デリファレンス
$refをデリファレンスして元のサブルーチンを呼び出す方法まずおさらい。
普通のサブルーチン呼出はこう書きます。
&greets(); # → hello ここで、
サブルーチン名 → {$ref}
と置き換えると、
$refをデリファレンスして元のサブルーチンを得ることができます。
&{ $ref }(); # → hello
デリファレンスの省略記法
下記のコードはすべて同じ動作をします。
&{$ref}();
&$ref();
$ref->();

コメントする