演算子
アセンブラの魔女 ⧫ Perl ⧫ 演算子
アセンブラの魔女 ⧫ Perl ⧫ 演算子
関係演算子
ファイルテスト演算子
部分演算子

 Perlの関係演算子には、数値を扱う演算子と文字列演算子があります。

数値の比較文字列の比較意味
==eq等しい
!=ne等しくない
>gtより大きい
>=ge以上
<ltより小さい
<=lt以下
<=le以下
<=>le等しくない
cmpASCIIコードに基づく比較

 cmpは末尾のスペースも比較の対象とします。左オペランドが大きいとき-1を、等しいときゼロを、右オペランドが大きいとき1を返します。

※関係演算子は結合しません。たとえば、以下の書き方は構文エラーになります。

$a < $b < $c

 Perlにはファイルやディレクトリをテストするための便利な演算子が用意されています。

演算子意味
-r実効uidで読み込み可能
-w実効uidで書き込み可能
-x実効uidで実効可能
-oオーナーが実効uid
-Ruidで読み込み可能
-Wuidで書き込み可能
-Xuidで実行可能
-Oオーナーがuid
-eファイルが存在
-zファイルが空でない(サイズを返す)
-f通常ファイル
-dディレクトリ
-lシンボリックリンク
-p名前付きパイプ
-Sソケット
-bブロックデバイス
-cキャラクタデバイス
-usetuidビットが立っている
-gsetgidビットが立っている
-kstickyビットが立っている
-tファイル指示子がtty
-Tテキストファイル
-Bバイナリファイル
-Mファイル作成時からスクリプト実行開始時までの日数
-Aファイルアクセス時からスクリプト実行開始時までの日数
-Ciノード更新時からスクリプト実行開始時までの日数

 以下のサンプルは -dファイル演算子を使って、ディレクトリ"./OUT"がすでに存在するか調べ、存在しなければ作成します。

$OUTDIR = "./OUT";
if ( !-d $OUTDIR )
{
 mkdir $OUTDIR;
}

 部分演算子「..」はコンテキストにより、2通りの意味を持ちます。

 リストや配列が要求されるコンテキストでは、左辺の値を1つずつインクリメントしながら右辺の値になるまで並べたリストと等価に扱われます。

# 1から100までの和を計算する例
foreach $a ( 1..100 )
{
    $sum += $a;
}

# 以下の記述は('a','b','c')と等価
@alpha = ('a'..'c');

 条件式では、左辺が真になった後、右辺が真になるまでの間、式の値が真となります。左辺、右辺のいずれかが定数であった場合は両辺は入力ファイルの行番号と比較されます。

# 3行目から5行目まで印刷
if ( 3..5 ) { print; }
▼ Property
記事情報
datePublished2011-01-01
dateModified2018-07-25
authorアセンブラの魔女
headlinePerlの演算子に関する記事です
keywordsPerl
keywords演算子
keywords関係演算子
keywordsファイルテスト演算子
keywords部分範囲演算子
publisher name= wiredFish, logo.name= wiredFish, logo.url= https://books-nekoya.jp/Programming/chigu-hagu-title-01.png size= 208 pixel x 50 pixel
image.url url= https://books-nekoya.jp/Programming/chigu-hagu-title-01.png , size= 208 pixel x 50 pixel