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 索引节点修改时间(单位: 天 )