すぐわかるPerlでPerlを学ぶ(その2)
すぐわかるPerl (Software Technology)
- 作者: 深沢千尋
- 出版社/メーカー: 技術評論社
- 発売日: 1999/07/01
- メディア: 単行本
- 購入: 11人 クリック: 300回
- この商品を含むブログ (44件) を見る
今日は三章から。これも簡単なのでチャキチャキ進めます。
第三章
条件分岐(if)
if (bCondition1) { // bCondition1が成立する場合に実行 } elsif (bCondition2) { // bCondition1==falseで,bCondition2==trueの場合に実行 } elsif (bCondition3) { // bCondition1,2==falseで,bCondition3==trueの場合に実行 } else { // 上記全てに該当しない場合に実行 }
elsifは結構間違いそうなので備忘。
論理演算子とビット演算子
これも基本的には多言語とあまり差異はありません。
演算子 | 役割 |
---|---|
and | 論理積 |
or | 論理和 |
xor | 排他的論理和 |
& | ビット単位の論理積 |
|*1 | ビット単位の論理和 |
^ | ビット単位の排他的論理和 |
itotto@www > cat optest.pl #!/usr/bin/perl $left = 8; # 8 = 0x0100 $right = 12; # 12 = 0x0110 if ( ( ($left + $right) > 20 ) and (($left - $right) < 0 ) ) { # $left + $right >20 であり , かつ , $left - $right < 0の場合に実行 } elsif (( ($left + $right) > 20 ) or (($left - $right) < 0 )) { # $left + $right >20 であり , もしくは , $left - $right < 0の場合に実行 } print("1.\t"); print($left & $right); print("\t<-ビット論理積演算\n2.\t"); print($left | $right); print("\t<-ビット論理和演算\n3.\t"); print($left ^ $right); print("\t<-ビット排他論理和算\n"); itotto@www > ./optest.pl 1. 8 <-ビット論理積演算 2. 12 <-ビット論理和演算 3. 4 <-ビット排他論理和算 itotto@www >
文字列の比較
perlでは==や!=は数値の比較用の演算子なので、文字列の比較には使えません。
文字列比較演算子は以下のとおり。
演算子 | 意味 |
---|---|
$x lt $y | $xは$yよりも小さい - less than |
$x gt $y | $xは$yよりも大きい - greater than |
$x le $y | $xは$y以下である - less than or equal |
$x ge $y | $xは$y以上である - greater than or equal |
$x eq $y | $xと$yは等しい - equal |
$x ne $y | $xと$yは等しくない - not equal |
演算子の違いをサンプルで見てみます。
itotto@www > cat strcomp.pl #!/usr/bin/perl $str1 = "hoge"; $str2 = "HOGE"; print("str1 = $str1\n"); print("str2 = $str2\n\n"); if ($str1 == $str2) { print("str1 == str2\n"); } else { print("str1 != str2\n"); } if ($str1 eq $str2) { print("str1 eq str2\n"); } else { print("str1 ne str2\n"); } itotto@www > ./strcomp.pl str1 = hoge str2 = HOGE str1 == str2 str1 ne str2 itotto@www >
true or false?
0と""(空文字)はfalseでそれ以外は全てtrue。
もっといけると思ったのにもうこんな時間...。そんなわけで続きは明日。