変数に対する演算

広告

算術演算子や他の演算子でも同じですが数値などの値と値だけではなく、値と変数そして変数と変数といった演算を行うことが可能です。例えば変数に格納された数値に対して数値を加算して別の変数に格納することが出来ます。

変数と値の演算の例としては次のようになります。

my ($var1, $var2);

$var1 = 10;
$var2 = $var1 + 8;

上記では変数「$var1」には数値の「10」が格納されています。そして「$var1 + 8」の結果、すなわち「18」が変数「$var2」に格納されます。

また変数と変数に対する演算も行うことが出来ます。

my ($var1, $var2, $sum);

$var1 = 10;
$var2 = 8;
$sum = $var1 + $var2;

上記では変数「$var1」には数値の「10」が変数「$var2」には数値の「8」が格納されています。そして変数「$sum」は変数「$var1」と変数「$var2」に格納されている数値の加算の結果、すなわち「18」が格納されます。

演算結果を変数に格納する

変数に対する演算結果を別の変数に格納するほかに、ある変数に対する演算結果を同じ変数に再度格納するという処理もよく使われます。例えば次のような場合です。

my $var;

$var = 8;
$var = $var + 3;

上記では変数「$var」にまず数値の「8」を格納します。そして次の行で変数「$var」に数値の「3」を加算した結果を変数「$var」に格納しています。その結果変数「$var」には「11」と言う数値が格納されます。

この演算では代入演算子である「=」の右辺と左辺に同じ変数「$var」が使われています。慣れないと分かりにくいですが、右辺を左辺に格納する処理を行っているだけです。この処理は次のように記述した場合と同じです。

my ($var, $dumy);

$var = 8;
$dumy = $var + 3;
$var = $dumy;

よく使われる記述方法ですので覚えておいて下さい。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test2-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $var;

$var = 8;
print "$var¥n";

$var = $var + 7;
print "$var¥n";

上記を「test2-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

変数に対する演算

今回は変数に対して演算した結果を同じ変数に格納ししてから画面に出力しています。

( Written by Tatsuo Ikura )