Akihiro's Programmer Blog

Technology Notes for Personal

「初めての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ビットの値としてビットが反転する


次回は

次回は第十三章を予定。