小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

シンボリックリファレンス

以下は、今の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」(シンボリックリファレンスのデリファレンス)。

ということで、シンボリックリファレンスとは、文字列値を変数名と解釈する。
しかし、実行時に動的に変数名を決めるなって、なんて言語だ。