第2章のサンプルコード
---------------------
目次（ページ番号）
■P22
■P23-1
■P23-2
■P24
■P27
■P28
■P30
■P31-1
■P31-2
■P32
■P34
■P35
■P36
■P38
■P39-1
■P39-2
■P40
---------------------

■P22
# 各演算子のテスト
#  op.pl

# 左辺と右辺の値を取得
print "左辺の値を入力してください: ";
$value1 = <STDIN>;
chomp($value1);
print "右辺の値を入力してください: ";
$value2 = <STDIN>;
chomp($value2);

# 加算
print "+\t", ($value1 + $value2), "\n";
# 減算
print "-\t", ($value1 - $value2), "\n";
# 乗算
print "*\t", ($value1 * $value2), "\n";
# 除算
print "/\t", ($value1 / $value2), "\n";
# 余り
print "%\t", ($value1 % $value2), "\n";
# 累乗
print "**\t", ($value1 ** $value2), "\n";
# 連結
print ".\t", ($value1 . $value2), "\n";
# 繰り返し
print "x\t", ($value1 x $value2), "\n";

■P23-1
# かっこによる優先順位の変更
#  parent.pl

# かっこなし
$value1 = 3 + 2 * 5;
# かっこあり
$value2 = (3 + 2) * 5;

# 表示
print "3 + 2 * 5 = $value1\n";
print "(3 + 2) * 5 = $value2\n";

■P23-2
print (2 + 3) * 3;
print "\n";
print ((2 + 3) * 3);
print "\n";

■P24
# 各代入演算子のテスト
#  substitute.pl

# 代入対象の値と代入値を取得
print "代入対象の初期値を入力してください: ";
$value1 = <STDIN>;
chomp($value1);
print "代入する値を入力してください: ";
$value2 = <STDIN>;
chomp($value2);

# 単純代入
$value = $value1;
$value = $value2;
print "=\t$value\n";

# 加算代入
$value = $value1;
$value += $value2;
print "+=\t$value\n";

# 減算代入
$value = $value1;
$value -= $value2;
print "-=\t$value\n";

# 乗算代入
$value = $value1;
$value *= $value2;
print "*=\t$value\n";

# 除算代入
$value = $value1;
$value /= $value2;
print "/=\t$value\n";

# 余り代入
$value = $value1;
$value %= $value2;
print "%=\t$value\n";

# 累乗代入
$value = $value1;
$value **= $value2;
print "**=\t$value\n";

# 連結代入
$value = $value1;
$value .= $value2;
print ".=\t$value\n";

# 繰り返し代入
$value = $value1;
$value x= $value2;
print "x=\t$value\n";

■P27
# インクリメント演算子単体での使用
#  single_increment.pl

print "初期値を指定してください: ";
$number = <STDIN>;
chomp($number);

# 同一の値を2つの変数に代入
$number2 = $number;
$number3 = $number;

# インクリメント
# 前に付ける
++$number2;
print "++$number: $number2\n";
# 後ろに付ける
$number3++;
print "$number++: $number3\n";

■P28
# 代入インクリメント演算子の使用
#  substitute_increment.pl

print "初期値を指定してください: ";
$number = <STDIN>;
chomp($number);

# 同一の値を2つの変数にコピー
$number2 = $number;
$number3 = $number;

# インクリメント
# 前に付けたものを$number4に代入
$number4 = ++$number2;
print "= ++$number: $number4\n";
# 後ろに付けたものを$number5に代入
$number5 = $number3++;
print "= $number++: $number5\n";

■P30
# 入力値が5以上かどうかを判定
#  larger.pl

print "数値を入力してください: ";
$value = <STDIN>;
chomp($value);

# 5以上( >= 5)かどうかを判定
if ($value >= 5) {
  print "5以上の数です。\n";
} else {
  print "5よりも小さな数です。\n";
}

■P31-1
# 指定した文字列が含まれているかどうかを調べる
#  pattern.pl

print "あなたの名前は何ですか: ";
$string = <STDIN>;
chomp($string);

# 文字列に「太郎」が含まれているかどうかを調べる
if ($string =~ /太郎/) {
  print "太郎さん、こんにちは。\n";
} else {
  print "あなたはどなたですか。\n";
}

■P31-2
# <=>演算子のテスト
#  larger_or_smaller.pl

print "左辺の数値を入力してください: ";
$value1 = <STDIN>;
chomp($value1);
print "右辺の数値を入力してください: ";
$value2 = <STDIN>;
chomp($value2);

# <=>演算子を使って比較、結果を表示
print "<=>の結果: ", ($value1 <=> $value2), "\n";

■P32
# ==とeqの違い
#  equal.pl

print "値を入力してください: ";
$value = <STDIN>;
chomp($value);

# ==で判定
if ($value == 5) {
  print "==: 値は5です。\n";
}

# eqで判定
if ($value eq 5) {
  print "eq: 値は5です。\n";
}

■P34
# 論理演算のテスト
#  logical.pl

print "1つ目の数値を入力してください: ";
$number1 = <STDIN>;
chomp($number1);
print "2つ目の数値を入力してください: ";
$number2 = <STDIN>;
chomp($number2);

# 文字列から数値にする
$number1 += 0;
$number2 += 0;

# &演算
print ("AND: ",($number1 & $number2), "\n");

# |演算
print ("OR:  ", ($number1 | $number2), "\n");

# ^演算
print ("XOR: ", ($number1 ^ $number2), "\n");

■P35
# 短絡論理演算子を使って2つの値が5より大きいかどうかチェックする
#  shortcut.pl

print "1つ目の数値を入力してください: ";
$number1 = <STDIN>;
chomp($number1);
print "2つ目の数値を入力してください: ";
$number2 = <STDIN>;
chomp($number2);

# 両方の値が5より大きいか
if ($number1 > 5 && $number2 > 5) {
  print "両方の数値が5より大きいです。\n";
} else {
  print "片方あるいは両方の数値が5より大きくありません。\n";
}

# 片方は5より大きいか
if ($number1 > 5 || $number2 > 5) {
  print "少なくとも片方の数値は5より大きいです。\n";
} else {
  print "両方の数値が5より大きくありません。\n";
}

■P36
# 複数の論理演算子
#  multiple_logical.pl

print "1 | 1 | 0 = ", 1 | 1 | 0, "\n";
print "1 | 1 ^ 1 = ", 1 | 1 ^ 1, "\n";
print "1 | (1 ^ 1) = ", 1 | (1 ^ 1), "\n";
print "1 & 1 | 0 = ", 1 & 1 | 0, "\n";

■P38
# ヒア演算子のテスト
#  here.pl

# ヒア演算子を使って複数行にわたる文字列を表示
print <<EOT
こんにちは、太郎さん。

  私は花子です。お元気ですか。
EOT
  ;

■P39-1
# ヒア演算子を使って変数に代入
#  here2.pl

$name = "鈴木さん";

# $stringにヒア演算子で代入
$string = <<EOT
こんにちは、$name。

  私のメールアドレスは、hanako\@saita.saita.xxです。
EOT
  ;

# $stringの内容を表示
print $string;

■P39-2
# ヒア演算子を使って変数に代入 (二重引用符を明示)
#  here3.pl

$name = "鈴木さん";

# $stringにヒア演算子で代入
$string = <<"EOT"
こんにちは、$name。

  私のメールアドレスは、hanako\@saita.saita.xxです。
EOT
  ;

# $stringの内容を表示
print $string;

■P40
# ヒア演算子を使って変数に代入 (単一引用符で囲む)
#  here4.pl

$name = "鈴木さん";

# $stringにヒア演算子で代入
$string = <<'EOT'
こんにちは、$name。

  私のメールアドレスは、hanako\@saita.saita.xxです。
EOT
  ;

# $stringの内容を表示
print $string;
