Perl入門 ≫ LESSON4 参照

参照(リファレンス)とは?

ある変数が存在したとします。
その変数の前に逆スラッシュを付けると、その変数へのリファレンスを表します。
そして、そのスカラー値を参照するには、リファレンスの前に$を付けます。
論より証拠。やってみましょう。

まず、

$moji = 'moji';

を定義します。

次に、この変数へのリファレンスを$hensuに作ります。

$hensu = \$moji;


どういう事かというと、上の図で言うと、変数$hensuは変数$mojiの中身である'moji' そのものではなく、変数$moji(オレンジの箱)を指している状態を作ります。
これで、変数$hensuは変数$mojiへの参照が可能になりました。

実際に値を参照するには、

print $$hensu;

で実現できます。

my $moji = 'moji';
my $hensu = \$moji;
print $$hensu;

結果は以下。

moji



・・だからなに?

参照できたらか何か便利かと言うと、こういうことです。

my $moji = 'moji';

my $hensu = \$moji;
print "$$hensu\n";

$moji = 'moji2';
print $$hensu;

結果は以下。

moji
moji2

この場合、最初に変数$hensuに変数$mojiへのリファレンスを作って置いたので、$mojiの値が変化すると、その後$hensuに何もしてなくても、変化していく$mojiの値を参照できるのです。

使う…ときがあるかもしれません!

実は参照はこのあとに出てくる配列やハッシュで使う事があります。
使いかたは同じで、参照変数を使って配列やハッシュにアクセスすることができます。
それぞれあとで説明します。
なんか複雑になるから使いたくない!と思っていても、ライブラリの使い方として利用しないといけないときがくるので、できたら「参照」の考え方を理解しておきましょう。 、

ページのトップへ戻る