Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. 構文
  3. here

next文 - 次の繰り返しの先頭にジャンプする

next文を使うと次の繰り返しの先頭にジャンプすることができます。これは、C言語やJavaのcontinue文に該当します。

next

next文はwhile文やfor文などの繰り返し文の中で使うことができます。

while (1) {
  if (条件) {
    next;
  }
}

for (my $i = 0; $i < 10; $i++) {
  if (条件) {
    next;
  }
}

foreach my $animal (@animals) {
  if (条件) {  
    next;
  }
}

特定の条件の時だけ、処理を飛ばしたい場合にnext文を利用することができます。

サンプルプログラム

next文を使ったサンプルプログラムです。

特定の文字に一致したときにループの先頭にジャンプ

ループ処理の途中で、ある条件の場合に、次のループの先頭にジャンプしたい場合にnext文を利用できます。

use strict;
use warnings;

my @chars = qw(z z a b c d e f);

for my $char (@chars){
  next if $char eq 'z';
  print "$char\n";
}

実行結果です。「z」のときだけ、次のループの先頭にジャンプしているので、後ろに続くprint関数が実行されないです。

a
b
c
d
e
f

「qw(z z a b c d e f)」は文字列リスト演算子です。

if文、for文、while文については、以下で詳しく解説していますので、参考にしてください。

正規表現と一緒に使ってみる

nextと正規表現を組み合わせることも多いです。ひとつサンプルを書いてみます。「ABC」という文字列が含まれていない場合に、出力をスキップするサンプルを書いてみます。条件判定にはunless文を使っています。

use strict;
use warnings;

my @strings = ('ABC', 'ABCD', 'CDE', 'FGH');

for my $string (@strings){
  next unless $string =~ /ABC/;
  print "$string\n";
}

出力結果です。「ABC」が含まれているものだけ出力されます。

ABC
ABCD

関連情報

last文を使うとループを脱出できる

next文と似たものにlast文があります。last文を使うと、ループを抜けることができます。

last

last文については、以下の記事を参考にしてください。

  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。