总觉得在Perl里面读取文本文件应该用个循环:

来源:互联网 发布:java 线程池面试题 编辑:程序博客网 时间:2024/07/17 03:07
 

总觉得在Perl里面读取文本文件应该用个循环:

while (<FH>) { print; }

或者是用数组:

@data = <FH>;

今天看代码时看到这样一段,真有种大开眼界的感觉。

$data = do { local $/; <FH>; };

查了查资料才明白:do表示执行后面括号内的语句,$/变量是读取文本文件时的行分隔符,默认是换行(/n)。那么这段代码的意思是,声明 local $/,使得在 {} 内 $/ 的值变成空值,那么从<FH>读取时就不会再以换行为分隔符,而是一次性将所有内容全部读出来。最后再用 do 将返回值赋给$data。

原创粉丝点击