式修飾子(if修飾子)

広告

if文を使って条件にあった時だけ処理を行うことが出来ますが、1つの処理だけを実行させる場合にはif文の代わりにif修飾子を使用することが出来ます。少々分かりにくいので具体的な例で考えていきます。例えば変数「$count」から1を減算する処理を行うとします。

$count = $count - 1;

この処理を$countに格納されている値が1以上の場合だけにしてみます。if文を使えば次のように記述できます。

if ($count >= 1){
  $count = $count - 1;
}

このような文は次のようにif修飾子を使って記述することが可能です。

$count = $count - 1 if $count >= 1;

if修飾子は処理に対して実行するかどうかの条件を指定します。if修飾子の書式は次のようになります。

真の時に実行する処理 if 条件式;

if修飾子が記述されている場合は、まず条件式を評価し真(true)だった場合には式を実行します。

if修飾子はif文を使っても記述できますが、1つの処理だけを行う場合には便利な記述方法です。また逆にif修飾子では条件式が真の時に実行できる処理は1つだけです。

式修飾子はif修飾子だけではなくunless修飾子が使用できます。また繰り返し処理用としてはwhile修飾子やforeach修飾子などもあります。こちらは「繰り返し処理」で確認します。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test8-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

my $count;

$count = 5;
print "$count¥n";

$count = $count - 10 if $count > 0;
print "$count¥n";

$count = $count - 10 if $count > 0;
print "$count¥n";

上記を「test8-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

式修飾子(if修飾子)

( Written by Tatsuo Ikura )