1. die "Oops!A file named '$filename' already existed!"
if -e $filename
使用-e選項,在系統建立檔案前檢測檔案是否已存在
2. warn “Config file is looking pretty old! /n ”
if -M CONFIG > 28; #CONFIG是一個檔案控制代碼
使用-M選項,檢查某個檔案是否長時間未被修改...
3. if -s $filename > 100_100 and -A $filename > 90;檔案大於100KB,並且90天未被訪問
4. Unix 檔案系統包括幾種類型,分別可由-f , - d, - l, -S, - p, -b, 以及- c 檢測,任何一種必屬於其中之一 .
5. my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blockes)
= stat($filename);
這些名字表明了 stat 返回的值的含義.
$dev 和 $ino
檔案的裝置號和索引節點號.它們組成了檔案的“ 牌照(license plate)”. 即便它有多個名字(硬串連 (hard link),設
備號和索引節點號的組合仍是唯一的。)
$mode
檔案的許可權位以及一些其它的位.比如0755.
$nlink
檔案或目錄的(硬 )串連數.是指被檢測項真實名字的個數 .對於目錄其值總是 2 或者更大的數,而對於檔案(通常)
是 1.
$uid 和 $gid
指檔案所有權的 user ID 及 group ID
$size
返回其大小.單位:位元組.同 -s檔案檢測項相同.
$atime, $mtime, 及 $ctime
這三個時間,它們按照系統的時間格式 :32 位 ,表示從某個時刻到現在所經過的秒數,這個時刻是記錄系統時間的一
個任意值.在 Unix 和別的某些系統中,這個時刻從世界時間 1970 年第一個午夜開始,但在某些系統中 ,這個時刻可
能不同.
6. my $timestamp = 1180630098;
my $date = localtime $timestamp; #這樣可以轉換成可閱讀的模式"The May 31 09:48:18 2007"
在列表上下文中localtime返回一列值
my($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst)
= localtime $timestamp;
$mon 是一個表示月份的數字,範圍是 0 到 11
,其在月份名字的數組中作為索引值是比較方便的 .$year 是指從 1900 現在的年份數,因此,需要加上 1900 來得到實際的年數.$wday 的值是從 0 (星期天 )到 6 (星期六 ). $yday 指一年中的具體天數,從0(1 月 1 日 )到 364 或 365(12 月 31 )。
檔案檢測選項及其含義
檢測選項 含義
-r 檔案或目錄對此( 有效) 使用者( effective user) 或組是可讀的
-w 檔案或目錄對此( 有效) 使用者或組是可寫的
-x 檔案或目錄對此( 有效) 用 戶或組是可執行檔
-o 檔案或目錄由本( 有效) 使用者所有
-R 檔案或目錄對此使用者 (real user)或組是可讀的
-W 檔案或目錄對此使用者或組是可寫的
-X 檔案或目錄對此使用者或組是可執行檔
-O 檔案或目錄由本使用者所有
-e 檔案或目錄名存在
-z 檔案存在,大小為 0(目錄恒為 false)
-s 檔案或目錄存在, 大小大於 0(值為檔案的大小 ,單位 :位元組)
-f 為普通文本
-d 為目錄
-l 為符號連結
-S 為 socket
-p 為管道 (Entry is a named pipe(a “ ” fifo ))
-b 為 block -special 檔案(如掛載磁碟 )
-c 為 character- special 檔案(如 I/O 裝置)
-u setuid 的檔案或目錄
-g setgid 的檔案或目錄
-k File or directory has the sticky bit set
-t 檔案控制代碼為 TTY (系統函數 isatty()的返回結果;不能對檔案名稱使用這個測試 )
-T 檔案有些像“ 文本”檔案
-B 檔案有些像“ 二進位” 檔案
-M 修改的時間( 單位:天 )
-A 訪問的時間( 單位:天 )
-C 索引節點修改時間(單位: 天 )