闲来无事,翻翻PERL,看了一下关于文件操作的,大概看了一下,代码如此简单...雷住了! 我是一个懒人,十足的懒人,代码多的程序基本不看... 用最少的代码干尽量多的事情,是我的目标. #!/usr/bin/perl -w use warnings; use strict; #常用文件操作 #打开文件 open(MYREAD,"c:/bar.emf")||die "$!";#MYFILE,自定义一个文件句柄 #读文件内容的三种方法 #1 my @data=<MYREAD>;#使用数组将文件内容读出,一般在文件不大的时候使用. =pod foreach my $tmp(@data){ print $tmp; } =cut #使用多行注释的方式,以"=pod"开始,以"=cut"结尾 =pod 以上循环的另一种写法 foreach(@data){ print $_; } =cut #print $data[0];#内容的第一行就是数组的第一个元素. #数组倒序,即第一行变最后一行 =pod foreach(reverse(@data)){ print scalar(reverse($_));#使字符倒序 } =cut =pod #2 while(defined(my $tmp=<MYREAD>)){#逐行读文件,可用于大文件 print $tmp; } #3 while(<MYREAD>){ #逐行读的简写方法 print $_;# $_:系统默认变量 } =cut =pod #eg.1打开二进制文件 binmode(MYREAD); while(<MYREAD>){ #逐行读的简写方法 print $_;# $_:系统默认变量 } =cut close(MYREAD);#关闭句柄 #写文件 #文件不存在的时候,自动创建 open(MYWRITE1,">out1.txt")||die "$!";#">":覆盖原文件 open(MYWRITE2,">>out2.txt")||die "$!";#">>":在原文件的结尾处追加 #写入内容 print MYWRITE1 @data; print MYWRITE2 @data; close(MYWRITE1); close(MYWRITE2); #eg.2将文件out2内容写入out1 #在写入的过程中,一定要先关闭文件句柄,否则内容不对.文件的内容实在close的时候才写入的 open(MYOUT,"out2.txt"); open(MYIN,">out1.txt"); print MYIN <MYOUT>; close(MYIN); close(MYOUT); #获取文件信息 =pod 运算符举例结果 -r -r'file' 如果可以读取'file',则返回真 -w -w$a 如果$a中包含的文件名是可以写入的文件名,则返回真 -e -e'myfile' 如果'myfile'存在,则返回真 -z -z'data' 如果'data'存在,但是它是空的,则返回真 -s -s'data' 如果'data'存在,则返回'data'的大小,以字节为计量单位 -f -f'novel.txt' 如果'novel.txt'是个普通文件,则返回真 -d -d'/tmp' 如果'/tmp'是个目录,则返回真 -T -T'unknown' 如果'unknown'显示为一个文本文件,则返回真 -B -B'unknown' 如果'unknown'显示为一个二进制文件,则返回真 -M -M'foo' 返回程序启动运行以来'foo'文件被修改后经过的时间 =cut #判断文件是否存在 print "文件信息测试:"; my $filename="c:/bar.emf"; chomp $filename; if(-e$filename){ print "/n"; print -M$filename;#上次修改时间 print "/n"; print -f$filename;#是否普通文本文件 print "/n"; print -s$filename;#文件大小 print "/n"; print -B$filename;#是否二进制文件 print "/n"; }