Perl入門ゼミ

  1. Perl
  2. 構文
  3. here

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行目