Perl文件及目录操作

上一篇 / 下一篇  2009-01-08 22:58:08 / 个人分类:perl

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP
 大多数程序都不是孤立的,它们与它们的环境相互作用。很多的程序也需要通过文件操作实现数据的存贮和交换。 文件句柄(file handle)是Perl程序中为程序和外部世界提供I/O连接的名称。建议全部使用大写字母以示与变量等的区别。特别地,也可以将STDIN/STDOUT/STDERR也认为 是Perl的文件句柄,分别代表标准输入/标准输出/标准错误输出。51Testing软件测试网O@-V%F4F(t8S
打开及关闭文件 51Testing软件测试网z:p4kZ/?0@V r~
  Perl的文件操作与C语言极为相似。如: 51Testing软件测试网 w&];Yo?_,hnj
open(FILENAME,"abc.txt"); 51Testing软件测试网/g pg]U iUb
  该调用为读文件打开,若为写文件而打开,需在文件名前加上大于号: 51Testing软件测试网#|f7x1m,?A7ou].S
open(FILENAME,">abc.txt"); 
$UFr1q}G0  若要追加至文件尾,可在文件名前加上两个大于号: 
b/Z6K+x$dy i0open(FILENAME,">>abc.txt"); 
JcpHc2d KVIu0  以上三种open()格式在成功时返回真,失败时返回假。但程序中通常没有提示,出错时往往会被人们忽略。 通常当需要给出出错提示时,可加入die()函数。例: 
0b(vg?#fNl3b bV0open(OUTFILE,">/tmp/outfile")|| 51Testing软件测试网Op7Q@k
die "出错,不能建立/tmp/outfile\n"; 
0i{] ^8N0  当只有open失败时,才会执行die给出出错提示。 
f3o `8aeX;kz(i,N ]s0  对文件句柄的操作完成后,可以用close操作符关闭文件。如: 
^3M't#D7W MNQ)g0close(OUTFILE); 
0B#m'V4e;{0-x 文件测试 
mMh'SN4Yw0  Perl的文件操作也可以先测试文件是否存在,是否可读写等。如:
AE:N~B c^C$qs0$x="abc.txt"; 
V'_pI0?:|:y8c6`,m&Z0if(-e $x) { #abc.txt是否存在? 
m_V4st9P,Sz0# 存在操作 51Testing软件测试网"cpdtmff)Z N1Y
} else { 
T r(W {9mx}0printf "文件不存在。\n"; 
g3j-I)^'JPb~ ~x051Testing软件测试网8^/p;g;\ v/J
-e操作符测试文件或目录是否存在。51Testing软件测试网AG/Wu2N:Du | Us!o
  以下为文件测试清单: 
{!_p1A:Z4Ih ]0文件测试 测试操作符提供的信息 51Testing软件测试网d3ZiI5K
-r 文件或目录可读 51Testing软件测试网+|4hs{?
-w 文件或目录可写 51Testing软件测试网u+`/nLN b4T { eq3Y)X
-x 文件或目录执行 
qK)S9A El?f"\0-o 文件或目录归用户所有 51Testing软件测试网.bO$Ws%x'x0[C
-R 文件或目录对真正用户可读 51Testing软件测试网I0rsWJ
-W 文件或目录对真正用户可写 51Testing软件测试网4`:ojY+EYm1l*oaG
-X 文件或目录对真正用户执行 51Testing软件测试网 JB[,k_
-O 文件或目录归真正用户所有 
T{_\ YF0-e 文件或目录存在 51Testing软件测试网.f-ohS^O7Bb m
-z 文件存在且大小为0 51Testing软件测试网p jn \"Y
-s 文件或目录存在且不为0(返回字节数) 
ek%AAU$kC0-f 文件为普通文件 51Testing软件测试网^#x1zx0Ka{f
-d 文件为目录 
H(loB7@0-l 文件为符号链接 51Testing软件测试网5}*x2g-WV0d
-p 文件为命名管道(FIFO) 
a8QD,d{ eY7D0-S 文件为一个套口(socket) 51Testing软件测试网0l%X5r4ex&b o1@^
-b 文件为块特殊文件 
j0B.qL4\8V(fe0-c 文件为字符特殊文件 
\X1j!Oj8{ Zq0-t 打开tty控制台的文件句柄 51Testing软件测试网xGt!_b,ib
-u 文件或目录是设置用户ID号 
#|D/G} B8r }3y}0-g 文件或目录是设置用户组ID号 
B,?}d7|0-k 文件或目录的sticky位置位 
j!PbRWs lZC0-T 文件是文本文件 51Testing软件测试网%mMTS7Ak
-B 文件是二进制文件 51Testing软件测试网ZK hGa4G{8w
-M 以天为单位的存在时间 51Testing软件测试网)A3J B1|A"{FX
-A 以天为单位访问时间 51Testing软件测试网S+_a"AH*['M2D6} Y3e
-C 以天为单位同代码更改时间
/y{Y_"A&Fn8cR;CM&G0删除文件 51Testing软件测试网 tA2@V3e:v/|
  Perl的unlink()操作符可实现删除文件。如:
:k#KT'km0O0unlink("abc.txt"); #删除abc.txt 51Testing软件测试网C hJ B2I(UO
文件重命名 
Pb Kn!mo.j0  Perl的rename()操作符可实现文件重命名。如:
|M ?-{ g D?$h2Qf0rename("abc","zmd")||die "出错,不能更名"; 51Testing软件测试网'U8~ Z/c%N _ r(}
  此时将abc更名为zmd,成功返回真,否则给出出错提示。51Testing软件测试网G]gNp4S1ag
目录操作 
&J,qNQ2tE C$J8t0  Perl中处理目录非常类似于处理文件。 
&F.[8^tS0  打开目录句柄: 51Testing软件测试网|*iA"AO:gK
opendir(ETC,"/etc")||die "出错,不能打开目录";51Testing软件测试网 B;CfN ?e T
  关闭目录句柄: 
H8cdy'X'aL0closedir(ETC); 51Testing软件测试网2d2KJ%C{;|z!R
  创建目录: 
\?0w-z(Z;\s0mkdir("zmd",0777)||die "不能创建zmd目录"; 
[rx)a }V6l+l9k0  0777为内部权限格式。 51Testing软件测试网:eP D9{/Z
  删除目录: 
0e;dXfQd0rmdir("zmd")||die "不能删除zmd目录"。

TAG: perl

 

评分:0

我来说两句

Open Toolbar