perlの演算子について
【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3
Perlは既にXAMPPにインストール済み
【演算子】
演算子とは→主に四則演算などを行う算術演算子
サンプルプログラム「enzanshi.pl」
use strict;
use warnings;
my $var;
$var = 8 + 3;
print "8 + 3 = $var\n";
$var = 4 * 3;
print "4 * 3 = $var\n";
$var = 4 ** 3;
print "4 ** 3 = $var\n";
$var = 8 / 4;
print "8 / 4 = $var\n";
$var = 7 % 3;
print "7 % 3 = $var\n";
結果
8 + 3 = 11
4 * 3 = 12
4 ** 3 = 64
8 / 4 = 2
7 % 3 = 1
【変数に対する演算】
サンプルプログラム「enzanshi2.pl」
use strict;
use warnings;
my $var;
$var = 8;
print "$var\n";
$var = $var + 7;
print "$var\n";
結果
8
15
【インクリメント及びデクリメント演算子】
サンプルプログラム「enzanshi3.pl」
use strict;
use warnings;
my $var;
$var = 3;
print "$var\n";
$var++;
print "$var\n";
$var--;
print "$var\n";
結果
3
4
3
【前置きと後置きの違い】
前置き: ++変数
$var1 = 10;
$var1 = $var1 + 1;
$var2 = $var1;
後置き: 変数++
$var1 = 10;
$var2 = $var1;
$var1 = $var1 + 1;
サンプルプログラム「enzanshi4.pl」
use strict;
use warnings;
my ($var1, $var2);
$var1 = 9;
$var2 = $var1++;
print "$var1\n";
print "$var2\n";
$var1 = 9;
$var2 = ++$var1;
print "$var1\n";
print "$var2\n";
結果
10
9
10
10
【その他の代入演算子】
代入演算子には「=」以外に他の算術演算子と組み合わせた演算子が用意されている
a += b、a -= b、a *= bなど
サンプルプログラム「enzanshi5.pl」
use strict;
use warnings;
my $var;
$var = 9;
$var += 5;
print "$var\n";
$var /= 2;
print "$var\n";
結果
14
7
【ビット演算子】
数値に対してビット単位で演算を行うための演算子
サンプルプログラム「enzanshi6.pl」
use strict;
use warnings;
my ($src, $dst);
$src = 11;
$dst = $src & 14;
print "$src \& 14 = $dst\n";
$src = 10;
$dst = $src | 12;
print "$src | 12 = $dst\n";
$src = 10;
$dst = $src ^ 12;
print "$src ^ 12 = $dst\n";
$src = 10;
$dst = ~$src;
print "~$src = $dst\n";
結果
11 & 14 = 10
10 | 12 = 14
10 ^ 12 = 6
~10 = 18446744073709551605
【シフト演算子】
ビット演算子の一つで数値の各ビットを左又は右へシフトさせるための演算子です。
サンプルプログラム「enzanshi7.pl」
use strict;
use warnings;
my ($src, $dst);
$src = 11;
$dst = $src << 1;
print "$src << 1 = $dst\n";
$src = 11;
$dst = $src >> 1;
print "$src >> 1 = $dst\n";
結果
11 << 1 = 22
11 >> 1 = 5
【文字列演算子】
文字列に対する操作を行う演算子として文字列の連結と文字列の繰り返しを行う演算子が用意されています
サンプルプログラム「enzanshi8.pl」
use strict;
use warnings;
my ($str1, $str2, $str3);
$str1 = "こんにちは";
$str2 = $str1."伊藤さん";
$str3 = $str1 x 3;
結果
こんにちは
こんにちは伊藤さん
こんにちはこんにちはこんにちは