スカラ変数(2) 数値計算してみる
数値同士で加減乗除するにはそれぞれ演算子「+」「-」「*」「/」を使うみたいです。数値同士の計算はもちろん、スカラ変数でも計算できます。
そこで以下を書いてみました。
# calctest.pl
my $a = 10;
my $b = 5;
print "$a = ", $a, " $b = ", $b, "\n";
print "加算: ", $a + $b, "\n"; # -> 15 (加算)
print "減算: ", $a - $b, "\n"; # -> 5 (減算)
print "乗算: ", $a * $b, "\n"; # -> 50 (乗算)
print "除算: ", $a / $b, "\n"; # -> 2 (除算)
ちょっと複雑で心配なので「-cw」オプションで構文チェックしてみましたが、「syntax OK」。ほっ。
実行してみると……
D:\dev\perl>perl calctest.pl 10 = 10 5 = 5 加算: 15 減算: 5 乗算: 50 除算: 2
あれ? 計算結果はちゃんと表示されましたが、最初の行が変ですね。
$a = 10 $b = 5
と出るように書いたつもりだったのですが、変数の中身が書かれてしまいました。なるほど。ここで、さっき覚えた変数が展開されないシングルクォテーションを使ってみます。
# calctest.pl
my $a = 10;
my $b = 5;
print '$a = ', $a, ' $b = ', $b, "\n";
print "加算: ", $a + $b, "\n"; # -> 15 (加算)
print "減算: ", $a - $b, "\n"; # -> 5 (減算)
print "乗算: ", $a * $b, "\n"; # -> 50 (乗算)
print "除算: ", $a / $b, "\n"; # -> 2 (除算)
実行してみます。
D:\dev\perl>perl calctest.pl $a = 10 $b = 5 加算: 15 減算: 5 乗算: 50 除算: 2
今度はちゃんと出ました! 「変数が展開されない」というのはこういう意味なんですね。