我试图打开一个.html文件作为一个大的长字符串。这是我得到的:
open(FILE,'index.html') or die "Can't read file 'filename' [$!]\n"; $document = <FILE>; close (FILE); print $document;
其结果是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN
但是,我想让结果看起来像:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<Meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
这样我可以更容易地搜索整个文档。
解决方法
加:
local $/;
之前从文件句柄读取。见How can I read in an entire file all at once?,或
$ perldoc -q "entire file"
参见Variables related to filehandles在perldoc perlvar和perldoc -f local
。
顺便说一下,如果你可以把你的脚本在服务器上,你可以有你想要的所有模块。见How do I keep my own module/library directory?。
此外,Path::Class::File允许您slurp和spew。
Path::Tiny给出了更方便的方法,如slurp
,slurp_raw
,slurp_utf8
以及它们的spew
同行。