※ここの解説は、後になるほど省略されている場合がありますのでできるだけ順番に読んでください。
■ 9.演算子
次は、ちょっと聞き慣れない演算子です。
Perlにはさまざまな演算子がありますが、今回はその中でもよく使用されると思われる演算子のみを説明します。
■ 演算子の種類
今回説明する演算子はつぎの6つです。
- インクリメント・デクリメント演算子(++、--)
- 数値に1足したり、1引いたりする
- 算術演算子(+、-、*、/、%、**)
- 四則演算を含む数値の計算に使用される
- 文字列演算子(.、x)
- 2つの文字列を結合する場合などに使用する
- 論理演算子(&&、and、||、or、xor、!、not)
- 前回説明した繰り返しや後に述べるif文などでの複数条件を結合する場合に使用される
- 数値比較演算子(==、!=、<、>、<=、>=、<=>)
- 2つの数値を比較する場合に使用する
- 文字列比較演算子(eq、ne、lt、gt、le、ge、cmp)
- 2つの文字列を比較する場合に使用する
■ 算術演算子
四則演算など数値の計算に使用する演算子です。
記述例 | 実行結果 |
---|---|
6 + 2 | 8 (加算) |
6 - 2 | 6 (減算) |
6 * 2 | 12 (乗算) |
6 / 2 | 3 (除算) |
1 / 3 | 0.333… (除算) |
7 % 4 | 3 (剰余)余り |
6 ** 2 | 36 (べき乗) |
$a = 5; $b = -$a; | $b に -5 がセットされる |
■ オートインクリメント演算子、オートデクリメント演算子
カウンタなどによく使用される演算子です。
記述例 | 実行結果 |
---|---|
$a++; ++$a; | $a = $a + 1 と同義 |
$a--; --$a; | $a = $a - 1 と同義 |
$a = 1; $b = $a++; print $a," ",$b; $a++; print $a," ",$b; $b = $a--; print $a," ",$b; $a--; print $a," ",$b; | ($b は加算前の値が代入される) 2 1 3 1 ($b は減算前の値が代入される) 2 3 1 3 |
$a = 1; $b = ++$a; print $a," ",$b; ++$a; print $a," ",$b; $b = --$a; print $a," ",$b; --$a; print $a," ",$b; | ($b は加算後の値が代入される) 2 2 3 2 ($b は減算後の値が代入される) 2 2 1 2 |
前回に、for文で次のようなサンプルがありましたが、
for ($var = 1;$var < 5; $var = $var + 1) { print $var," "; }
for ($i = 1,$j = 1;$i < 5; $i = $i + 1,$j = $j - 1) { print $i,"/",$j," "; }
上記の演算子を使えば、
for ($var = 1;$var < 5;$var++) { print $var," "; }
for ($i = 1,$j = 1;$i < 5;$i++,$j--) { print $i,"/",$j," "; }
と簡単な記述に変更できます。
■ 文字列演算子
文字列の結合などに使用される演算子です。
記述例 | 実行結果 |
---|---|
print "aa"."bb"; | aabb |
$a = "abc"; $b = "def"; print $a.$b; | abcdef |
$a = "abc"; print $a x 3; | abcabcabc (3回繰り返し) |
@list = (a,b,c) x 3; print @list; | abcabcabc |
■ 論理演算子
演算結果を結合するときに使用される演算子です。
記述例 | 意 味 |
---|---|
条件式 && 条件式 真 && 真 偽 && 評価しない | 論理積(andとほぼ同義) 真 偽 |
条件式 and 条件式 真 and 真 偽 and 評価しない | 論理積 真 偽 |
条件式 || 条件式 真 || 評価しない 偽 || 真 偽 || 偽 | 論理和(orとほぼ同義) 真 真 偽 |
条件式 or 条件式 真 or 評価しない 偽 or 真 偽 or 偽 | 論理和 真 真 偽 |
条件式 xor 条件式 真 xor 真 真 xor 偽 偽 xor 真 偽 xor 偽 | 排他的論理和 偽 真 真 偽 |
! 変数 真 偽 | 否定(notとほぼ同義) 偽 真 |
not 変数 真 偽 | 否定 偽 真 |
■ 数値比較演算子
数値の比較などに使用される演算子です。
記述例 | 実行結果 |
---|---|
$a == $b | $aと$bが等しいときに真、それ以外は偽 |
$a != $b | $aが$bと等しくないときに真、それ以外は偽 |
$a < $b | $aが$bより小さいときに真、それ以外は偽 |
$a > $b | $aが$bわり大きいときに真、それ以外は偽 |
$a <= $b | $aが$bと等しいか小さいときに真、それ以外は偽 |
$a >= $b | $aが$bと等しいか大きいときに真、それ以外は偽 |
$a <=> $b | $aと$bが等しいときに0、$aが小さいとき-1、$bが小さいとき+1を返す |
■ 文字列比較演算子
文字列の比較などに使用される演算子です。
記述例 | 実行結果 |
---|---|
$a eq $b | $aと$bが等しいときに真、それ以外は偽 |
$a ne $b | $aが$bと等しくないときに真、それ以外は偽 |
$a lt $b | $aが$bより小さいときに真、それ以外は偽 |
$a gt $b | $aが$bわり大きいときに真、それ以外は偽 |
$a le $b | $aが$bと等しいか小さいときに真、それ以外は偽 |
$a ge $b | $aが$bと等しいか大きいときに真、それ以外は偽 |
$a cmp $b | $aと$bが等しいときに0、$aが小さいとき-1、$bが小さいとき+1を返す |
■ 代入演算子
上記の演算子を省略した形で使用される演算子です。
例えば、 $a = $a 演算子 $b; を $a 演算子= $b; と 記述するものです。
記述例 | 意 味 |
---|---|
$a += $b; $a -= $b; $a *= $b; $a /= $b; $a %= $b; $a **= $b; $a .= $b; $a x= $b; $a &&= $b; $a ||= $b; | $a = $a + $b; $a = $a - $b; $a = $a * $b; $a = $a / $b; $a = $a % $b; $a = $a ** $b; $a = $a . $b; $a = $a x $b; $a = $a && $b; $a = $a || $b; |