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

时间:2015-02-02 15:40:29

标签: perl

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

正如有人评论 - 这看起来像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>标记转换为HTML。