Perl 将文件读入变量并为每一行添加后缀

Perl Read a file into a variable and add suffix to each lines

我是 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";
}

感谢您的帮助!

正如有人评论的那样 - 这看起来像 YAML,因此解析为 YAML 可能更合适。

但是要解决您的情况:

  • 3参数文件打开正常
  • 您正在使用 local $/;,这意味着您正在将整个文件读入一个字符串。这不适用于逐行处理。

看起来您正在将所有内容放入哈希的一个元素中。您这样做有什么特别的原因吗?

无论如何:

if ( open ( my $input, "<", "CHANGELOG.OLD" ) ) {
    while ( my $line = <$input> ) {
        $tmplhtml{'CHANGELOG'} .= $line . " <BR/>\n";
    } 
}
else { 
    $tmplhtml{'CHANGELOG'} = "Changelog not available";
}

作为替代方案 - 您可以使用 <PRE> 标签将文本 'neatly' 渲染到 HTML。