Perl的文件操作与C类似,都需要先获得文件句柄(类似于指针),获得方法如下:
open(HANDLE, "filename"); //获取读文件句柄
open(HANDLE, ">filename"); //获取写文件句柄,若文件存在则先清空内容再写
open(HANDLE, ">>filename"); //获取写文件句柄,若文件存在则在原内容之后追加
>和>>的意义与linux中数据流重定向类似
Tips:获取读文件句柄时不需要加<
读取文件一般采用尖括号运算符<>,如
$a = <HANDLE>; //读取文件中的一行
@a = <HANDLE>; //将文件整个赋给数组@a,数组的每个元素对应文件的一行
还有一种方法是在while循环的条件判断中直接使用<>,如
while(<HANDLE>){
print $_;
}
这时系统默认变量$_代表了文件的每一行
Tips:Perl做文件操作时,读取的每一行还包含行尾字符。如果只需要文本,则需要使用chomp命令进行处理。
写入文件的形式如下
print HANDLE List;
其中List是要写入的内容。在List中,用逗号分隔各个项目,如
print HANDLE "This entry was written at ", scalar(localtime), "/n";
加粗部分即为List
Tips:Perl的写文件操作只是将数据先写入缓存,过段时间后再从缓存写入文件。因此,写文件操作结束后,应使用
close(HANDLE);
关闭句柄并刷新缓存,使得数据即时写入文件
综上所述,不难理解Perl中的标准输入输出(实际上STDIN, STDOUT可看做特殊的文件句柄)
标准输出:
print STDOUT List;
STDOUT可以省略,因此形式一般为
print List;
标准输入:
$a = <STDIN>;
还有一种方法是在while循环的条件判断中直接使用<>,如