我正在尝试打开一个.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">
这样我可以更容易地搜索整个文档。
发布于 2009-06-05 01:28:49
我会这样做:
my $file = "index.html";
my $document = do {
local $/ = undef;
open my $fh, "<", $file
or die "could not open $file: $!";
<$fh>;
};
请注意open的三参数版本的用法。它比旧的两个(或一个)参数版本要安全得多。还要注意词法文件句柄的使用。出于许多原因,词法文件句柄比旧的无字变体更好。我们在这里利用了其中的一个:当它们超出范围时就会关闭。
发布于 2009-06-05 08:55:02
发布于 2009-06-05 03:20:57
所有的帖子都是稍微不那么地道的。这个成语是:
open my $fh, '<', $filename or die "error opening $filename: $!";
my $data = do { local $/; <$fh> };
大多数情况下,不需要将$/设置为undef
。
https://stackoverflow.com/questions/953707
复制相似问题