MTでPerlを学ぶ(その2・変数)

「MTでPerlを学ぶ」の第2回として、「変数」の第一歩についてお話します。

1.「変数」とは

コンピュータの「プログラム」とは、どんなものでしょうか?
おおざっぱに言えば、「定められた手順に従って、さまざまな情報を処理するもの」と言えます。

プログラムの中では多くの情報を扱いますが、それぞれを「入れ物」に入れて扱います。
この入れ物のことを、プログラミングの世界では「変数」と呼びます。
Perlに限らず、他の言語でも「変数」という呼び方が使われています。

2.変数を宣言する

変数を使いたい場合、Perlの処理系に対して、「変数を使います」ということを教えるようにします。
このことを、「変数を宣言する」と呼びます。

また、プログラムの中では多くの情報を使いますので、変数も多数使います。
それぞれの変数を区別するために、変数には名前を付けます。
Perlの変数にはいくつかの種類がありますが、1つの値を格納するための変数は、「$変数名」のように表します。

Perlで変数を宣言する方法はいくつかありますが、「my」という命令を使う方法が良く使われています。
例えば、「$a」という変数を宣言するには、以下のように書きます。なお、行の最後の「;」は、行の区切りを表します。

my $a;

複数の変数を一度に宣言することもできます。
その場合、変数名をコンマで区切って並べ、その前後を括弧で囲みます。
例えば、「$a」「$b」「$c」の3つの変数を宣言する場合は、以下のように書きます。

my ($a, $b, $c);

3.代入と演算

前述したように、変数は「情報の入れ物」です。
変数を宣言しただけでは、ただ入れ物があるだけで、中身がありません。
そこで、変数に何らかの中身を入れます。このことを「代入」と呼びます。

代入を行うには、「=」の記号を使います。
「=」の左に変数名を書き、右に入れるもの(値や計算式)を書きます。

例えば、以下のように書くと、変数$aに数値の100が代入されます。

$a = 100;

また、以下のように書くと、変数$bに、変数$aの値を2倍した値が代入されます。
なお、「*」は掛け算を表します。ちなみに、割り算は「/」で表します。

$b = $a * 2;

4.例

変数を使ったごく簡単な例として、以下のようなものを作ってみましょう。

  1. $a/$b/$cの3つの変数を宣言します。
  2. $aに100を代入します。
  3. $bに200を代入します。
  4. $cに、$aの値と$bの値を足した値を代入します。
  5. $cの値を画面に表示します。

上記の処理をプログラムにすると、以下のリストのようになります。

my ($a, $b, $c);

$a = 100;
$b = 200;
$c = $a + $b;
print $c;

$aに100、$bに200を代入していますので、$cは300になります。それを表示するので、画面に「300」と表示されます。
試しに、上記のプログラムをMTPerlScriptタグのブロックに入れて、テンプレートを再構築してみてください(テンプレートの例は以下の通り)。
その出力ファイルを開くと、「300」と表示されるはずです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>変数</title>
    <meta http-equiv="Content-Type" content="text/html; charset=<$mt:PublishCharset$>" />
</head>
<body>
<p>
<MTPerlScript>
my ($a, $b, $c);

$a = 100;
$b = 200;
$c = $a + $b;
print $c;
</MTPerlScript>
</p>
</body>
</html>

上記のインデックステンプレートのサンプルをダウンロード