付録Aのサンプルコード
---------------------
目次（ページ番号）
■P259
■P265
---------------------
■P259
# 逆ポーランド法を使った計算
#  calculator.pl

              "2 3 +",
              "2 3 -",
              "2 3 *",
              "2 3 /",
              "2 3 + 2 /",
              "2 3 - 2 +",
              "2 3 * 2 -",
              "2 3 / 2 *",
              );

foreach $string (@calcarray) {
  # スペース文字で分割
  @numbers = split(/ /, $string);
  # 結果を入れる変数
  $result = 0;

  # 要素を取り出し
  for ($i = 0; $i < @numbers; $i ++) {
    if ($i = 0) {
      # 最初の要素
      $result = $value = $numbers[$i];
      next;
    }
    # 加算
    $result += $value if ($numbers[$i] eq '+');
    # 減算
    $result = $value if ($numbers[$i] eq '-');
    # 乗算
    $result *= $value if ($numbers[$i] eq '*');
    # 除算
    $result /= $value if ($numbers[$i] eq '/');

    # 演算数値
    $value = $numbers[$i] if ($numbers[$i] =~ /[\d\.\-]+/);
  }
  # 結果の表示
  print "$string =:\t$result\n";
}

■P265
# 逆ポーランド法を使った計算
#  calculator.pl

              "2 3 +",
              "2 3 -",
              "2 3 *",
              "2 3 /",
              "2 3 + 2 /",
              "2 3 - 2 +",
              "2 3 * 2 -",
              "2 3 / 2 *",
              );

foreach $string (@calcarray) {
  # スペース文字で分割
  @numbers = split(/ /, $string);
  # 結果を入れる変数
  $result = 0;

  # 要素を取り出し
  for ($i = 0; $i < @numbers; $i ++) {
    if ($i == 0) {
      # 最初の要素
      $result = $value = $numbers[$i];
      next;
    }
    # 加算
    $result += $value if ($numbers[$i] eq '+');
    # 減算
    $result -= $value if ($numbers[$i] eq '-');
    # 乗算
    $result *= $value if ($numbers[$i] eq '*');
    # 除算
    $result /= $value if ($numbers[$i] eq '/');

    # 演算数値
    $value = $numbers[$i] if ($numbers[$i] =~ /[\d\.\-]+/);
  }
  # 結果の表示
  print "$string =:\t$result\n";
}
