Perl入門講座

文:Nick Gibson(Builder AU) 翻訳校正:石橋啓一郎
2007-12-21 08:00:00
  • このエントリーをはてなブックマークに追加

ここでは、数字のべき乗を計算してみることから始めることにする。次のプログラムは、x^yを出力する。

$x = 7;
$y = 12;

$result = 1;
while ($y > 0) {
    $result = $result * $x;
    $y--;
}

print $result;
print "\n";

 このプログラムを実行すると、次のような出力が得られる。

% perl pow.pl
13841287201

 このプログラムでは、whileループを使って繰り返し$resultを$xでかけ算しており、ループが実行される度に$yの値が1減らされるため、このループは$y回しか実行されない。Perlでは数字や文字などのスカラー変数は、変数名の前に「$」を付けることで見分け、他の型と区別する。ただし、このプログラムはあまり正しくない。もし、負の数でのべき乗を計算したければどうなるだろうか。yを-1に変えてこのプログラムを実行したら、ループは実行されず1が出力されるだろう。これは正しくないので、次のように変える必要がある。

$x = 7;
$y = -1;

$result = 1;
if ($y > 0) {
        while ($y > 0) {
                $result = $result * $x;
                $y--;
        }
} else {
        while ($y < 0) {
                $result = $result / $x;
                $y++;
        }
}
print $result;
print "\n";

 ここではプログラムを分岐させるためにif文を使っており、もしyが正の数であれば最初のループを実行し、負の数であれば2番目のループを実行する、カウントを増やしていくと共に繰り返し割り算を行い、yがゼロであればresultは1のままで終了する。このプログラムを実行すると、次のような出力が得られる。

% perl pow.pl
0.142857142857143

 もちろん、Perlではこのような一般的な関数を書き換える必要はなく、組み込みの「**」という演算子がある。例えば、上の関数は単に次のように書くこともできる。

$x = 7;
$y = -1;

print $x ** $y;
print "\n";

おわりに

 これでPerlを入手して実行することができるようになり、読者はプログラムを書き始めた。しかし、Perlを使うことの真の有利さは、コマンドラインからの入力を処理することや、正規表現の力を使ってテキスト処理を行うことにある。今後、builderではこうしたことを紹介していく予定だ。

この記事は海外CNET Networks発のニュースをシーネットネットワークスジャパン編集部 が日本向けに編集したものです。海外CNET Networksの記事へ

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]