一旦在Perl中具有打开的文件句柄,就需要能够读取和写入信息。有多种不同的方式将数据读取和写入文件。
从打开的文件句柄读取信息的主要方法是<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函数从指定的FILEHANDLE中返回单个字符,如果未指定则返回STDIN-
getc FILEHANDLE getc
如果出现错误,或者文件句柄位于文件末尾,则返回undef。
read函数从缓冲的文件句柄中读取信息块:此函数用于从文件中读取二进制数据。
read FILEHANDLE, SCALAR, LENGTH, OFFSET read FILEHANDLE, SCALAR, LENGTH
读取的数据长度由LENGTH定义,如果未指定OFFSET,则将数据放置在SCALAR的开头。否则,数据将放在SCALAR中的OFFSET字节之后。该函数返回成功读取的字节数,文件末尾为零,如果出现错误,则返回undef。
对于从文件句柄读取信息的所有不同方法,写回信息的主要功能是打印功能。
print FILEHANDLE LIST print LIST print
打印功能将LIST的评估值打印到FILEHANDLE或当前输出文件句柄(默认为STDOUT)。例如-
print "Hello World!\n";