unless修飾子 - 後置のunless
unless修飾子を使うとunlessを後置することができます。
文 unless 条件;
unless修飾子を使ったサンプルです。$numが定義されていない場合に、「$num」に1を代入するという処理を行っています。
$num = 1 unless defined $num;
一行で書ける簡単な条件のときはunless修飾子を使うメリットがあります。 「next unless 条件」「last unless 条件」などがよく利用されます。
unless修飾子のメリット
通常のunless文と比べてunless修飾子のメリットはパフォーマンスです。unless文はスコープを作るのに対して、unless修飾子はスコープを作りません。そのためunless修飾子の方がパフォーマンスがよいです。
if修飾子
unless修飾子と同じように後置することができるif修飾子というものがあります。
$num1 = 1 if defined $num1;
if修飾子については以下で詳しく解説しています。
サンプル
unless修飾子のサンプルです。
use strict; use warnings; # 後置のunless print "1: 後置のunlessの例\n"; my $num1; $num1 = 1 unless defined $num1; print "\$num1 = $num1\n"; my $num2 = 10; $num2 = 2 unless defined $num2; print "\$num2 = $num2\n";
実行結果
1: 後置のunlessの例 $num1 = 1 $num2 = 10