我对Perl很新,我很难找到我想要的东西。
我有一个包含
之类的文本文件text 2015-02-02:
- blabla1
- blabla2
text2 2014-12-12:
- blabla
- ...
我正在尝试读取文件,将其放入var中,添加到每行(我的var)的末尾并使用它将其发送到网页。
这就是我现在所拥有的。它的工作原理除了部分。
if (open (IN, "CHANGELOG.OLD")) {
local $/;
$oldchangelog = <IN>'</br>';
close (IN);
$tmplhtml{'CHANGELOG'} = $oldchangelog;
} else {
# changelog not available
$tmplhtml{'CHANGELOG'} = "Changelog not available";
}
感谢您的帮助!
答案 0 :(得分:1)
正如有人评论 - 这看起来像YAML,所以解析为YAML可能更合适。
然而,要解决您的问题:
local $/;
,这意味着您将整个文件读入字符串。这不适合逐行处理。 看起来你将所有内容都放在哈希的一个元素中。你有没有特别的理由这样做?
反正:
if ( open ( my $input, "<", "CHANGELOG.OLD" ) ) {
while ( my $line = <$input> ) {
$tmplhtml{'CHANGELOG'} .= $line . " <BR/>\n";
}
}
else {
$tmplhtml{'CHANGELOG'} = "Changelog not available";
}
作为替代方案 - 您可以整洁地呈现文字。使用<PRE>
标记转换为HTML。