別の値を格納
変数は一度値を格納した後で別の値を格納することが出来ます。ただし1つの変数につき値を格納できる場所は1つしかありませんので、新しい値を格納すると古い値は上書きされて消えてしまいます。
次のサンプルでは変数を1つ宣言し、初期値を一度格納してから画面に出力し、その後で別の値を変数に格納してから改めて画面に出力しています。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $str; $str = "Hello"; print $str; $str = "こんにちは"; print $str;
上記を「test5-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
画面に出力している箇所は「print $str;」と同じなのですが、この部分が実行されている時に変数「$str」に格納されている値を出力しているため同じプログラムであっても別の値が画面に出力されています。
同じ変数に異なる種類の値を格納
Perlで扱う値としては数値や文字列などがあります。他のプログラムの言語では変数に格納できる値の種類を指定して変数を宣言するものもありますが、Perlでは変数に格納できる値を限定していません。その為、宣言した変数に一度文字列を格納した後で、同じ変数に対して今度は数値を格納することが可能です。
次のサンプルでは変数を1つ宣言し、初期値を一度文字列を格納してから画面に出力し、その後で今度は数値を変数に格納してから改めて画面に出力しています。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $str; $str = "Hello"; print $str; $str = 10; print $str;
上記を「test5-2.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
このように同じ変数に対して異なる種類の値を格納することが可能です。
( Written by Tatsuo Ikura )