if修飾子 - 後置のif
if修飾子を使うとifを後置することができます。
文 if 条件;
if修飾子を使ったサンプルです。正規表現を使って、先頭が「#」ならば次の行に移動という処理を行っています。
for my $line (@lines) { next if $line =~ /^#/; }
一行で書ける簡単な条件のときはif修飾子を使うメリットがあります。nextやlastと組み合わせて 「next if 条件」「last if 条件」などがよく利用されます。
if修飾子のメリット
通常のif文と比べてif修飾子のメリットはパフォーマンスです。if文はスコープを作るのに対して、if修飾子はスコープを作りません。そのためif修飾子の方がパフォーマンスがよいです。
unless修飾子
if修飾子と同じように後置することができるunless修飾子というものがあります。
$num1 = 1 unless defined $num1;
unless修飾子については以下で詳しく解説しています。
サンプルコード
if修飾子のサンプルです。
use strict; use warnings; # 後置のif print "1-2 : 後置のifの例(next if)\n"; my @lines = ( '#コメント', '1行目', '2行目' ); for my $line (@lines) { # 先頭が、#ならば、次の行へ next if $line =~ /^#/; print $line, "\n"; } print "\n";
実行結果
1行目 2行目