「初めてのPerl」 第十二章
第十二章から。
第十二章 ファイルテスト
内容
用語集
用語 | 説明 |
---|---|
ファイルテスト演算子 | ファイルの情報を取得する |
stat関数 | ファイルの詳細情報を取得する。シンボリックリンクに対してはlstat関数で情報が取れる。 |
Point
ファイルに関する情報を取得したい
# ファイル名か、ファイルハンドルに対してファイルテスト演算子が使える my $filename = "hoge.txt"; if (-e $filename) { print $filename . "は存在します"; } if (-f $filename) { print $filename . "は普通のファイルです"; }
複数のファイルテストを同じファイルに適用したい
# 同じファイルに複数のファイルテストを適用するには... my $filename = "hoge.txt"; if (-e $filename and -f $filename) { print $filename . "は存在していて、普通のファイルです"; } # でもテストの度に情報を取得し直すのはいやなので... if (-e $filename and -f _) { print $filename . "は存在していて、普通のファイルです"; } # さらにperl5.10以上なら... if (-f -e $filename) { print $filename . "は存在していて、普通のファイルです"; }
さらに別の情報を取得したい
# ファイルテストでは取得できない情報を取りたい場合にはstat関数を使う my $filename = "hoge.txt"; my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat $filename;
ビット演算したい
# AND演算 10 & 12 #=> 8 # OR演算 10 | 12 #=> 14 # XOR演算 10 ^ 12 #=> 6 # 左シフト演算 6 << 2 #=> 24 # 右シフト演算 25 >> 2 #=> 6 # ビット否定演算 ~10 #=> 4294967285 # 最後のビット否定演算は32ビットマシンの場合 # 64ビットマシンの場合は64ビットの値としてビットが反転する
次回は
次回は第十三章を予定。