知らなかったのでメモ。
#!/usr/bin/env perl use strict; use warnings; sub hoge { print "hello\n"; } *foo = \&hoge; foo();
この例題を実行すると元気にhelloと表示される。 これは型グロブを使ってhogeサブルーチンのエイリアス的にfooを登録している。 代入しているのはサブルーチンリファレンスなので参照している実態は同じとなる。
また代入先も変数そのものではなくて型グロブに対してなので、呼び出しが$foo->()
ではない。
世間で使われているものだとSmart::Argsに使われていた。
よくみたら公式ドキュメントにそれっぽい記述があった。
これができるのも面白いけどuse strict
環境で普通に実行できたのがびっくり。。。。