my @args = stat ($filename);
my $size = $args[7];
stat()函数返回一个数组。下面是数组各元素的含义。
0 dev 设备号 驱动器号(C:通常是2,D:通常是3,等等)
1 ino 索引节号 总是0
2 mode 文件的方式 无
3 nlink 链接号 通常为0;Windows NT;文件系统允许链接
4 uid 文件所有者的用户ID(UID)总是0
5 gid 文件所有者的组ID(GID)总是0
6 rdev 特殊文件信息 驱动器号(重复)
7 size 文件大小(以字节计)文件大小(以字节计)
8 atime 上次访问的时间 上次访问的时间
9 mtime 上次修改的时间 上次修改的时间
10 ctime Inode修改时间 文件的创建时间
11 blksz 磁盘块的大小 总是0
12 blocks 文件中的块的数量 总是0
例:获取文件时间
my @array = stat("mysql.tar.gz");
print "$array[9]/n";
$size=(stat)[7]
$size=(stat filename)[7]
perl中的文件测试参数
-r 文件或是目录对该(有效)用户或组可读
-w 文件或是目录对该(有效)用户或组可写
-x 文件或是目录对该(有效)用户或组可
-o 文件或是目录被该(有效)用户所有
-R 文件或目录对该实际用户或组可读
-W 文件或目录对该实际用户或组可写
-X 文件或目录对该实际用户或组可执行
-O 文件或目录被该实际用户所有
-e 文件或目录存在
-z 文件存在,大小为零,判断文件是否大小为零(对目录总为假)
-s 文件存在,大小非零(即,文件大小,单位为字节)
-f 条目是个普通文件
-d 条目是个普通目录
-l 条目是个符号连接
-S 条目是个套接字
-p 条目是个命名管道(一个fifo)
-b 条目是个特殊(block-special)文件(如一个可装载磁盘)
-c 条目是个字符特殊(character-special)文件(如一个I/O设备)
-u 文件或目录是setuid
-g 文件或目录是setgid
-k 文件或目录的粘着位(sticky bit)被设置
-t 文件句柄是个TTY(可由isatty()系统函数返回;文件名不能由本测试来测试)
-T 文件像是个“文本”文件
-B 文件像是个“二进制”文件
-M 更改年龄(单位:天)
-A 访问年龄(单位:天)
-C Inode更改年龄(单位:天)