if ( 条件 ) { 真の場合の処理 }
である。条件としては、(1) パターンが存在すること、 (2) 2 つの数字、文字の比較または大小関係が用いられる。(1) や (2) の結果 として 真 であれば if の (条件) は 1 偽であれば 0 が与えられる。
#!/usr/local/bin/perl $a = 1; print '$a = ',$a,"\n"; # 変数 $a に 1 を代入。 # もし $a が 1 に 等しかったら (== 数値として等しい) 印刷。 if ($a == 1) { print '$a = 1',"\n"; } # $a が 1 の判定であるならば、下の表記でも正しい if($a) { print '$a is true',"\n"; } # 等しくないという場合には、!= が使われる。 if ( $a != 2 ) { print '$a is not 2.',"\n";} # 大小関係においては、> と < (等号を含まない場合)、<= と >= (含む場合) if ( $a >= -1) { print '$a is greater or equal to -1.',"\n";} # 次に文字列の条件。数字の場合と違うので注意。 $b = 'uec'; print '$b = ',$b,"\n"; # $b に 文字列 uec を代入。 # 等しい場合 eq、 等しくない場合 ne、 if ($b eq 'uec' ) { print '$b is equal to \'uec\'. ',"\n"} ; if ($b ne 'uec' ) { print '$b is not uec.',"\n"} else {print 'No',"\n"}; # 文字列の大小 gt と lt、及び等しい場合を含む ge と le は、アルファベット # 順で決められる。 if ("$b" lt 'ued' ) { print "$b is litter than \'ued\'.\n"; } # 文字列の長さ (数値) の比較は、長さを与える関数 length() が使われる。 if ( length($b) >= 3 ) { print "The length of $b is > or = to 3.\n";} # $_ に代入すれば、5.3 で示した パターンがあるかないかを使える。 # ec という パターンが $_ にあれば.... $_ = $b; if ( /ec/ ) { print 'pattern ec is found',"\n"; } if (! /wc/ ) { print 'pattern wc is not found',"\n";}
または elsif で条件をいくらでも分けることができる。
if ( 条件1 ) { 条件1 = 真の場合の処理 }
elsif ( 条件2 ) { 条件1 = 偽 で 条件2 = 真の場合の処理 }
elsif ( 条件3 ) { 条件1,2 = 偽 で 条件3 = 真の場合の処理 }
else {全て偽の場合の処理}
elsif は何個あってっも良い。 場合分けをする場合には、elsif で長い 1 つの if 文を作った方が 、複数の if 文に分けるより処理上速い。
また2つの条件において、and や or の機能を && と || で、つなげて一つの 条件にする事ができる。
注意: elsif は elseif と書き間違えないように。csh や fortran を知っている人は特に注意。
#!/usr/local/bin/perl $_ = <>; # 一行入力し、$_ にいれる。 chop; # $y についている改行の記号を取る。これで $y は文字だけになる。 # 入力した文字が y または Y で 始まれば yes と判断する。 if ( /[yY].*/ ) { print 'yes ですね。',"\n";} # でなければ n または N で始まれば no の判断する。 elsif( /[nN].*/ ) { print 'no ですね。',"\n";} else{print "$_", ' は yes か no かわかりません。',"\n"}
#!/usr/local/bin/perl $p = shift ; # shift は最初の引数を与える。 while(<>) { print if (/$p/); } # もし各行に 引数のパターンがあれば印刷
% p6-2.pl abc < file
で与えられる。Perl で引数は 配列 @ARGV で与えられる。(csh に似ている) 第一の引数が $ARGV[0] である。プログラムの名前は $0 に入る。 引数の個数は、$#ARGV である。一般に配列 @a の長さは、$#a で 与えられる。
#!/usr/local/bin/perl print "$0 のコマンドの引数の数は、$#ARGV 個で、内容は @ARGV である\n"; print "特に最初の引数は、$ARGV[0] である。\n";
% p6-3.pl ok a b c p6-3.pl のコマンドの引数の数は、3 個で、内容は ok a b c である 特に最初の引数は、ok である。 %となる。