シンボリックリファレンス
以下は、今のstrict時代に非推奨なシンボリックリファレンスです。
とりあえず、perlってこんな凄いことも出来るよってことで……。
# 配列変数の例 @list = (10, 20); print $list[0] , "\n"; # これは配列のゼロ番目の要素で、「10」と表示される。 $scalar = \@list; # @listのリファレンスを代入。 print $scalar->[0] , "\n"; # これも「10」(普通のリファレンスのデリファレンス)。 $scalar = 'list'; # 単なる文字列代入。しかし、同名変数のリファレンス代入でもあるらしい… print $scalar->[0] , "\n"; # なんとこれも「10」(シンボリックリファレンスのデリファレンス)。 # スカラー変数の例 $scalar = "symbolic" . "_ref"; ${"$scalar"} = "30"; # なんとこれは「$symbolic_ref = "30";」とイコール。 print $symbolic_ref, "\n"; # したがってこれは「30」と表示される。 print $$scalar , "\n"; # なんとこれも「30」(シンボリックリファレンスのデリファレンス)。
ということで、シンボリックリファレンスとは、文字列値を変数名と解釈する。
しかし、実行時に動的に変数名を決めるなって、なんて言語だ。