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循环的条件判断中直接使用<>,如
本文详细介绍了Perl语言中文件的操作方法,包括如何打开文件获取读写句柄、读取和写入文件的具体语法,并解释了Perl中标准输入输出的实现方式。
1039

被折叠的 条评论
为什么被折叠?



