main::test_methodというグロブには自分自身がどこにいるかを調べるために、自分自身へのリファレンスを持っているのですが、その情報を*Foo::test_methodに置き換えているわけです。*1

実際にはグロブを丸ごと違うグロブを参照するような処理は行いません*1。グロブの一部(大抵はコードリファレンス)に対してだけこのような処理を行います。

まとめ

このグロブ割り当ての原理を利用したサブルーチンの記述は、CPANモジュールなどでよく見かける事があります。また社内ではこの記述がたくさんでてくるので新人向けに説明をする練習がてらに日記を書いてみました。

実際に研修に使用して、文章が推敲されたらまた記事を書き直したいと思います。

*1:不幸な副作用がおこる