1、文件句柄
文件句柄是一个变量,它的值表示一个输入来源或输出去向。
perl保留了6个特殊的文件句柄:STDIN、STDOUT、STDERR、DATA、ARGV、ARGVOUT。
打开文件句柄
open 变量名,"文件名";??? #变量名即文件句柄的名称,可任取,建议大写
??? 文件名前可以使用<、>、>>来表示读入、输出和附加。若省略,则表示输出。
??? open Filein,"< file1";
??? open Fileout,"> file2";
??? open Fileout,">> file3";
??? 当输出文件不存在时,可以自动创建。但当目录不存在时,不能自动创建。
关闭文件句柄
close 变量名;??? #应在使用完毕后及时关闭文件句柄
2、读入:使用整行读入操作符
<文件句柄>??? #一次读入一行
????可使用for和while连续读入。但for要求列表,而while要求标量。
????因此for是一次全部读入,逐个处理;而while是一次读入一个,处理一个。
????print "it is $_" for <Filein>;??? #当文件过大时,会非常消耗内存
????print "it is $_" while <Filein>;
将文件句柄重定向到开头
seek FIND,0;
<>??? #当省略文件句柄时,则使用程序的调用参数,即@ARGV
??? 该参数实际上应该在程序开始运行之前获取
??? 若程序未调用任何参数,则从STDIN读入。
??? 因此大部分情况下,可以使用<>代替<STDIN>。
3、输出:print、printf
默认输出到STDOUT
??? print "hellon";??? #屏幕输出hello
输出到文件
print 文件句柄 "hellon";??? #将hello输出到文件句柄指向的位置
格式化输出
printf "格式字符串",数据列表;??? #常用格式符号有%d、%s、%f
4、输出错误和警告信息:和条件判断联用
die "出错信息";??? #中止程序,输出出错信息
die "$!";??? #使用$!输出系统服务请求失败信息
warn "警告信息";??? #输出警告信息,但不中止程序
5、目录句柄:和文件句柄类似 opendir D1,"../test";??? #在路径名称里不能使用"~" readdir D1;??? #读取目录里的所有文件及文件夹名称,包括"."和"..",但不包括路径。因此在文件测试时要加上路径。 closedir D1;