在Perl中读取和写入文件

一旦在Perl中具有打开的文件句柄,就需要能够读取和写入信息。有多种不同的方式将数据读取和写入文件。

<FILEHANDL>运算符

从打开的文件句柄读取信息的主要方法是<FILEHANDLE>运算符。在标量上下文中,它从文件句柄返回一行。例如-

#!/usr/bin/perl
print "What is your name?\n";
$name = <STDIN>;
print "Hello $name\n";

在列表上下文中使用<FILEHANDLE>运算符时,它将返回指定文件句柄中的行列表。例如,要将文件中的所有行导入到数组中-

#!/usr/bin/perl
open(DATA,"<import.txt") or die "Can't open data";
@lines = <DATA>;
close(DATA);

getc函数

getc函数从指定的FILEHANDLE中返回单个字符,如果未指定则返回STDIN-

getc FILEHANDLE
getc

如果出现错误,或者文件句柄位于文件末尾,则返回undef。

read函数

read函数从缓冲的文件句柄中读取信息块:此函数用于从文件中读取二进制数据。

read FILEHANDLE, SCALAR, LENGTH, OFFSET
read FILEHANDLE, SCALAR, LENGTH

读取的数据长度由LENGTH定义,如果未指定OFFSET,则将数据放置在SCALAR的开头。否则,数据将放在SCALAR中的OFFSET字节之后。该函数返回成功读取的字节数,文件末尾为零,如果出现错误,则返回undef。

print 函数

对于从文件句柄读取信息的所有不同方法,写回信息的主要功能是打印功能。

print FILEHANDLE LIST
print LIST
print

打印功能将LIST的评估值打印到FILEHANDLE或当前输出文件句柄(默认为STDOUT)。例如-

print "Hello World!\n";