2.10.6. 基本構文#

ここでは、Perl プログラミングにおいて頻繁に使用される基本的な文法として、条件構文と繰り返し構文について解説します。これらはデータの内容に応じて処理を分岐させたり、同じ処理を何度も繰り返したりする際に利用されます。

2.10.6.1. 条件構文#

条件構文は、ある条件が真か偽かによって処理内容を切り替えるために使用します。Perl では主に ifif elseif elsif else という形式が用いられます。

最も基本的な構文が if 文です。条件が真の場合にのみ、ブロック内の処理が実行されます。

my $x = 10;

if ($x > 5) {
    print "x is greater than 5\n";
}

上記の例では、$x が 5 より大きいため、メッセージが表示されます。

条件が偽の場合に別の処理を行いたい場合は else を使用します。

my $x = 3;

if ($x > 5) {
    print "x is greater than 5\n";
} else {
    print "x is 5 or less\n";
}

この場合、$x は 5 以下なので、else 側の処理が実行されます。

複数の条件を順番に評価したい場合は elsif を用います。条件は上から順に評価され、最初に真となったブロックのみが実行されます。

my $x = 5;

if ($x > 5) {
    print "x is greater than 5\n";
} elsif ($x == 5) {
    print "x is equal to 5\n";
} else {
    print "x is less than 5\n";
}

この例では $x が 5 と等しいため、2 番目の条件が真となり、そのブロックが実行されます。

2.10.6.2. 繰り返し構文#

同じ処理を複数回実行したい場合には繰り返し構文を利用します。Perl では主に for 文と while 文が使用されます。

2.10.6.2.1. for#

for 文は、あらかじめ決められた回数だけ処理を繰り返したい場合に便利です。初期化、継続条件、更新処理を 1 行で記述できます。

for (my $i = 0; $i < 5; $i++) {
    print $i, "\n";
}

この例では、$i が 0 から 4 まで変化しながら、5 回ループが実行されます。

配列の要素を順番に処理したい場合には、次のような書き方もよく利用されます。

my @arr = ("A", "C", "G", "T");

for my $base (@arr) {
    print $base, "\n";
}

ここでは配列 @arr の各要素が順番に $base に代入され、1 つずつ表示されます。

2.10.6.2.2. while#

while 文は、条件が真である間、処理を繰り返します。繰り返し回数が事前に決まっていない場合に適しています。

my $i = 0;

while ($i < 5) {
    print $i, "\n";
    $i++;
}

この例では $i が 5 未満である間、ループが継続されます。ループ内で $i を更新しないと無限ループになるため注意が必要です。

ファイルやデータを 1 行ずつ処理する場合にも while 文はよく使われます。例えば、標準入力から 1 行ずつ読み込む場合は次のように記述します。

while (my $line = <STDIN>) {
    chomp $line;
    print $line, "\n";
}

この構文では、入力がある間、1 行ずつ読み込んで処理を行います。

以上が Perl における代表的な条件構文と繰り返し構文です。これらを組み合わせることで、柔軟な処理の流れを実装できるようになります。