您的位置:首页 > 其它

Perl文件及目录操作

2010-11-09 15:04 162 查看
<!--
/* 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: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;}
@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;}
/* 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-margin-top-alt:auto;
margin-right:0in;
mso-margin-bottom-alt:auto;
margin-left:0in;
mso-pagination:widow-orphan;
mso-outline-level:2;
font-size:18.0pt;
font-family:"Times New Roman";}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline;
text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
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
文件存在且大小为
0

-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
目录
"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: