本文へスキップ
BecomeCoder

Perlコース · 第3章 制御構文 · レッスン11

後置修飾子と last / next ― Perlらしい書き方

ブラウザで完結

導入

Perl では、1文だけの ifループうしろに置いてすっきり書けます。これを後置修飾子といい、Perl らしさの象徴です。

説明

文 if 条件;文 unless 条件;文 while 条件;文 for リスト; のように、条件やループを文のうしろに付けられます。波かっこが要らず、読みやすくなります。

use strict;
use warnings;

my $x = 7;
print "正の数\n" if $x > 0;
print "$_ " for (1..5);
print "\n";

ループの途中で抜けるには last、その回を飛ばして次へ進むには next を使います(他言語の break / continue にあたります)。

use strict;
use warnings;

for my $i (1..10) {
    next if $i % 2 == 0;    # 偶数は飛ばす
    last if $i > 7;         # 7 を超えたら終了
    print $i, " ";          # 1 3 5 7
}
print "\n";

やってみよう

next iflast if の条件を変えて、表示される数がどう変わるか確かめましょう。

演習

for my $i (1..20) のループで、next を使って3の倍数だけを表示してください(3 6 9 12 15 18)。

ヒント1を見る

3の倍数以外を飛ばします。next if $i % 3 != 0; のあと print "$i ";

実際に動かしてみよう

下のエディタにPerlを書いて「実行」を押すと、学習用シミュレータが print / say の出力を表示します(本物のperlではなく、教材の範囲を再現した軽量なエンジンです)。スカラ/配列/ハッシュ・制御構文・サブルーチン・正規表現(=~ / s///)なども動きます。本文の例を書き換えて動かしてみましょう(ファイル入出力・リファレンス・CPANモジュールなど一部の機能は対象外です)。

Perl — ブラウザ内で実行(学習用シミュレータ)

Perlの教材サブセットを動かす学習用シミュレータを読み込みます(本物のperlではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。