my変数とリファレンス
List::Util.pmを見てたらこんなコードを見つけた。
my $caller = caller; local(*{$caller."::a"}) = \my $a; local(*{$caller."::b"}) = \my $b;
\myって何だ?と思ったらこれひょっとして$aと$bにバックスラッシュが付いてるって意味か?
my ($a, $b); local(*{$caller."::a"}) = \$a; local(*{$caller."::b"}) = \$b;
つーかマニュアルのどこ見たらこんな書き方載ってるんだろう。
あとこれ、呼び元のシンボルテーブルにこっちの$aと$bの参照を渡してて、要するにsort { $a <=> $b } @ary;とか書いた時にいきなり$aと$bが使える理由はこういうことだったのか。