文件操作小技巧:全局变量“$/”
时间:2007-04-19 来源:白熊
在默认的情况下,文件中的记录被认为是由换行符分开(例如回车或其他代表新行开始的字符)。你可以重新设定这个默认的分隔符,然后 Perl 将会以你指定的分隔符为准来替代换行符。全局变量 $/ 里存储了输入文件的分隔符,如果你把 $/ 的值设置为 undef ,那么 Perl 将会认为整个文件是一条记录(因为此刻已经没有文件分隔符了)。牢记 $/ 是全局变量,千万不要在脚本的其他地方不经意的改变它,这个错误将很难被发现。你可能会问,我们能否不改变 $/,而采用把文件的所有记录读到一个数组中,然后把数组联合成一个很长的字符串(比如 $slurp = join("",);)的方法实现一次读入文件。当然这也是一个有效的解决办法,但是你会发现它很慢,是否选用它取决你的应用,取决于你是否关心运行速度。
例子:
“
open FH, "< anthem";
$/ = undef;
$slurp = <FH> ;
print $slurp;
” 此段代码就将文件当成一条记录去处理
$/ = undef;
$slurp = <FH> ;
print $slurp;
” 此段代码就将文件当成一条记录去处理
相关阅读 更多 +