官术网_书友最值得收藏!

2.1 識別文件或目錄

文件在Perl程序中的表示與在操作系統中的一樣,類似“/home/joy/a.txt”“../b.txt”和“c.txt”等這樣的字符串。文件名之前可以有絕對路徑或者相對路徑,如果沒有路徑,則默認是當前(運行Perl程序的)路徑。

在處理文件之前,我們需要先識別文件。Perl提供了一些文件(包括目錄)測試操作符,它們中的大部分會返回“真”或“假”。例如:

my $to_check = "/tmp/a";
if ( -e $to_check ) {
  print "file or directory $to_check exists.\n";
}
else {
  print "file or directory $to_check does not exist.\n";
}

-e測試操作符的含義是:如果文件或目錄是存在的,那么該測試返回“真”,否則返回“假”。

常用的文件測試操作符,如表2-1所示。

表2-1 文件測試操作符

000

請注意,-f返回真時,測試對象可能是普通文件,也可能是指向其他文件的符號鏈接。如果想要確保被測試的對象只是普通文件,而不是符號鏈接,則需要使用:

if ( -f $file and ! -l $file ) {
  print "$file is file, not link\n";
}

還有一個常用的測試操作符-s。如果被測對象是普通文件,它會返回文件的大小,以字節(byte)為單位。這常用于我們挑選某類大小的文件,或者累計文件的大小。

if ( -s $file > 500,000,000 ) {
  print "$file is larger than 500M\n";
}
主站蜘蛛池模板: 峨眉山市| 三台县| 万盛区| 胶州市| 南岸区| 新乡市| 荆州市| 丰顺县| 大余县| 磐石市| 隆尧县| 灵璧县| 延吉市| 延庆县| 定安县| 安吉县| 蓝田县| 武汉市| 高碑店市| 鄢陵县| 翁牛特旗| 昌都县| 盱眙县| 韶关市| 油尖旺区| 确山县| 仙居县| 察隅县| 太保市| 安溪县| 镇远县| 定结县| 泽普县| 彩票| 仙居县| 奉贤区| 德清县| 永嘉县| 扶余县| 盐山县| 台安县|