Perl入門講座

文:Nick Gibson(Builder AU)
翻訳校正:石橋啓一郎
2007/12/21 08:00

Perlは過去10年間でもっともよく使われているスクリプト言語であり、ウェブの裏側でも活躍している。これからPerlに触ってみようという人向けに、Perlの特徴からインストールの手順、プログラムの例までを説明する。

ここでは、数字のべき乗を計算してみることから始めることにする。次のプログラムは、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の記事へ

記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
  • 新着記事
  • 人気記事
  • 特集
  • ブログ
  • 読者投票
    今、使っているマシンのOSは?

    投票受付期間:2008年6月27日 〜 2008年7月11日
  • » 投票しないで結果だけ見る