现在的位置: 首页 > 综合 > 正文

Perl文件及目录操作

2013年10月28日 ⁄ 综合 ⁄ 共 2814字 ⁄ 字号 评论关闭


<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
{font-family:"/@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 680460288 22 0 262145 0;}
@font-face
{font-family:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:-1593833729 1073750107 16 0 415 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:宋体;}
h2
{mso-style-next:Normal;
margin-top:12.0pt;
margin-right:0in;
margin-bottom:3.0pt;
margin-left:0in;
mso-pagination:widow-orphan;
page-break-after:avoid;
mso-outline-level:2;
font-size:14.0pt;
font-family:Arial;
font-style:italic;}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:navy;
text-decoration:underline;
text-underline:single;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->

Perl文件及目录操作

大多数程序都不是孤立的
,
它们与它们的环境相互作

用。很多的程序也需要通过文件操作实现数据的存贮和交换。
 
文件句柄
(file handle)

Perl
程序中为程序和外部世界提供
I/O
连接的名称。

建议全部使用大写字母以示与变量等的区别。特别地,也可以将
STDIN/STDOUT/STDERR
也认为
 

Perl
的文件句柄,分别代表标准输入
/


准输出
/
标准错误输出。
 


打开及关闭文件
 


  
Perl
的文件操作与
C
语言极为相似。如:
 


open(FILENAME,"abc.txt");
 


  该调用为读文件打开,若为写文件而打开,需在文件名前加上大于号:
 


open(FILENAME,">abc.txt");
 


  若要追加至文件尾,可在文件名前加上两个大于号:
 


open(FILENAME,">>abc.txt"); 


  以上三种
open()
格式在成功时返回真,失败时返回假。但程序中通常没有提示,出错时往往会被人们忽略。
 
通常当需要给出出错提示时,可加入
die()
函数。例:
 

open(OUTFILE,">/tmp/outfile")|| 
die "
出错,不能建立
/tmp/outfile/n"; 


  当只有
open
失败时,才会执行
die
给出出错提示。
 


  对文件句柄的操作完成后,可以用
close
操作符关闭文件。如:
 

close(OUTFILE); 

-x 
文件测试
 


  
Perl
的文件操作也可以先测试文件是否存在,是否可读写等。如:
 

$x="abc.txt"; 
if(-e $x) { #abc.txt
是否存在?
 

存在操作
 
} else { 
printf "

文件不存在。
/n"; 

-e
操作符测试文件或目录是否存在。
 


  以下为文件测试清单:
 


文件测试
 
测试操作符提供的信息
 

-r 

文件或目录可读
 
-w 

文件或目录可写
 
-x 

文件或目录执行
 
-o 

文件或目录归用户所有
 
-R 

文件或目录对真正用户可读
 
-W 

文件或目录对真正用户可写
 
-X 

文件或目录对真正用户执行
 
-O 

文件或目录归真正用户所有
 
-e 

文件或目录存在
 
-z 

文件存在且大小为

-s 

文件或目录存在且不为
0(
返回字节数

-f 

文件为普通文件
 
-d 

文件为目录
 
-l 

文件为符号链接
 
-p 

文件为命名管道
(FIFO) 
-S 

文件为一个套口
(socket) 
-b 

文件为块特殊文件
 
-c 

文件为字符特殊文件
 
-t 

打开
tty
控制台的文件句柄
 

-u 

文件或目录是设置用户
ID

 
-g 

文件或目录是设置用户组
ID

 
-k 

文件或目录的
sticky
位置位
 

-T 

文件是文本文件
 
-B 

文件是二进制文件
 
-M 

以天为单位的存在时间
 
-A 

以天为单位访问时间
 
-C 

以天为单位同代码更改时间
 


删除文件
 


  
Perl

unlink()
操作符可实现删除文件。如:
 


unlink("abc.txt"); #
删除
abc.txt
 


文件重命名
 


  
Perl

rename()
操作符可实现文件重命名。如:
 


rename("abc","zmd")||die "
出错
,
不能更名
";
 


  此时将
abc
更名为
zmd
,成功返回真,否则给出出错提示。
 


目录操作
 


  
Perl
中处理目录非常类似于处理文件。
 


  打开目录句柄:
 


opendir(ETC,"/etc")||die "
出错
,
不能打开目录
";
 


  关闭目录句柄:
 


closedir(ETC);
 


  创建目录:
 


mkdir("zmd",0777)||die "
不能创建
zmd
目录
";
 


  
0777
为内部权限格式。
 


  删除目录:
 


rmdir("zmd")||die "
不能删除
zmd
目录
"


 

 

抱歉!评论已关闭.