他の変数の値を格納
変数には数値や文字列の値を格納することができますが、値を直接格納する以外に他の変数に格納されている値を格納することが出来ます。
my ($var1, $var2); $var1 = 100; $var2 = $var1;
上記の場合は、まず2つの変数を宣言します。そして変数「$var1」に数値の100を格納します。次に変数「$var2」に変数「$var1」を格納します。この時、変数「$var2」には変数「$var1」に格納されている値が取り出されて格納されます。結果として変数「$var2」には数値の100が格納されます。
この時、変数「$var1」の値がコピーされて変数「$var2」に格納されますので変数「$var1」には数値の100が格納されたままです。また値がコピーされているだけなので、後で変数「$var1」の値が変更されたとしても変数「$var2」の値には影響しません。
サンプルプログラム
では実際に試してみます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my ($var1, $var2); $var1 = "Hello¥n"; $var2 = $var1; print $var1; print $var2; $var1 = "こんにちは¥n"; print $var1; print $var2;
上記を「test7-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
今回の場合、まず変数に文字列を格納した後で他の変数にコピーして画面に両方の変数の値を出力させています。そして変数の値を1つだけ変更してから改めて両方の変数の値を出力させています。
( Written by Tatsuo Ikura )