綾小路龍之介の素人思考

スカラ変数に対するリファレンスのいろは

D:\>perl -e "$word = \"A\"; $ref_word = \$word; print $ref_word;"
SCALAR(0x1555d70)
D:\>

こういうことがわざわざファイルを作らなくてもいいということが一行スクリプトのうれしい点かも。まぁそれはおいといて。上は変数$wordに文字列Aを代入して、変数$wordのリファレンス(メモリアドレス)を取得して、これを表示しているんだな。つまりこんな感じなんだな。

$word     = "A";
$ref_word = \$word;
print $ref_word;

変数名の前につけた\のことをリファレンス演算子と呼ぶんだな。この演算子の付いたスカラ変数の中身は変数と対応したメモリアドレスになっているんだな。

D:\>perl -e "$word = \"A\"; $ref_word = \$word; print $$ref_word;"
A
D:\>

こんな風にしてみるとまた違った出力が得られるんだな。こいつは書き下すと下のような感じになるんだな。

$word     = "A";
$ref_word = \$word;
print $$ref_word;

リファレンスの含まれる変数の前にドルマーク$を加えて出力するとリファレンスの指し示す変数の内容が出力されるんだな。

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2007-10-05T11:58:47+09:00
  2. Modified: 2007-10-05T04:24:12+09:00
  3. Generated: 2016-12-13T23:09:18+09:00