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。
我是 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。