変数とは
まず変数とは何かについて確認しておきます。
同じ文字列を5回表示するようなプログラムを考えて下さい。
print "こんにちは¥n"; print "こんにちは¥n"; print "こんにちは¥n"; print "こんにちは¥n"; print "こんにちは¥n";
このプログラム自体には何の間違いもありませんし思った通りの動作をします。ここで繰り返し表示したい文字列が「こんにちは」ではなくて「こんばんは」だったことが分かったとします。その場合にはプログラムを次のように書き直さなくてはなりません。
print "こんばんは¥n"; print "こんばんは¥n"; print "こんばんは¥n"; print "こんばんは¥n"; print "こんばんは¥n";
今回の場合は修正箇所も5回だけですし、同じ位置にまとめて記述されていますので修正するのも簡単です。ただプログラム中の別々の場所に記述されていたような場合には探し出して修正するのは結構大変です。また修正忘れによるミスにもつながりやすくなります。
「こんにちは」にしても「こんばんは」にしても、何か記憶できる場所を用意しておいて値を保管しておき、必要に応じて取り出すことができれば便利です。値を保管する場所を変数といいます。
変数と呼ばれる保管場所に「こんにちは」と言う文字列を格納しておく
では変数を使って先ほどのプログラムを書き直してみます。
my $str = "こんにちは¥n"; print $str; print $str; print $str; print $str; print $str;
変数の詳しい使い方は次のページ以降で解説しますが、今回のプログラムでは1行目で変数「str」に文字列「こんばんは¥n」を格納しています。そして変数「str」に格納されている値を5回出力しています。
「こんばんは」と言う文字列は変数に1回だけ格納していますので、もし出力したい文字列が変更になった場合でも1箇所だけを変更するだけで済みます。
my $str = "こんばんは¥n"; print $str; print $str; print $str; print $str; print $str;
「print」で文字を出力する部分には出力する文字列を記述していませんので何も修正する必要はありません。修正する箇所は変数に文字列を格納する部分だけです。
このように変数をうまく活用することでプログラムを効率よく記述することが出来ます。変数には値を保存するだけではなく、一度保存した値を書き換えることも可能なので、例えば一度変数に保存した値を取り出して別の加工をした上で再度変数に保存し直すと言った事も可能です。
また変数に数値を格納した場合、変数に対して演算を行うこともできます。計算の結果を変数に格納しておき、その格納された値にまた別の計算を行って再度変数に格納するといったことも可能です。
サンプルプログラム
では簡単なプログラムで確認して見ます。
use strict; use warnings; use utf8; binmode STDIN, ':encoding(cp932)'; binmode STDOUT, ':encoding(cp932)'; binmode STDERR, ':encoding(cp932)'; my $str = "こんにちは¥n"; print $str; print $str; print $str; $str = "こんばんは¥n"; print $str; print $str; print $str;
上記を「test1-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。
変数に格納された値が出力されています。今回の例では途中で変数に別の値を再度格納してからまた出力しています。
それでは次のページ以降で変数について詳しく確認していきます。
( Written by Tatsuo Ikura )