0

我正在尝试将变量打印到文件(HTML)中,但我尝试的任何方法似乎都不起作用。

我已经通过将变量打印到 STDOUT 来验证变量确实包含数据,但是它永远不会打印到文件中。

这是代码:

#BEGIN Replication Table
$REPstatCmd = "/bin/rstat";
@REPstat = split /\n/,`$REPstatCmd`;
@REPstatG0 = split / /, $REPstat[1];
$REPstatG0C1 = $REPstatG0[0];


print OUTPUT "<td valign=top><table><tbody><tr><th class=title>Replication Stats</th></tr><tr><td>\n";
print OUTPUT $REPstatG0C1;
print OUTPUT "</td></tr></table></td></tr></table></h2>\n";

rstat 的输出如下所示:

Group          Remote Server      Local Done    Remote Done    Difference
0         drhost01_72                0              0
1         drhost01_72            7,582          7,582
2         drhost01_72      102,108,940    102,108,905            35
3         drhost01_72        5,584,312      5,584,312
4         drhost01_72       86,466,240     86,466,210            30
5         drhost01_72       22,898,028     22,898,028
6         drhost01_72            2,366          2,366
7         drhost01_72       53,106,257     53,106,236            21
8         drhost01_72    1,003,226,281  1,003,225,641           640

如果我这样做:

print $REPstatG0C1;

我按预期得到以下信息:

0

输出文件如下所示:

</table></td><td valign=top><table><tbody><tr><th class=title>Replication Stats</th>
</tr><tr><td>
</td></tr></table></td></tr></table></h2>

REPstatG0C1 变量明显被跳过,它应该在第 2 行。

如果相关,我的文件处理程序如下所示:

open OUTPUT, ">index.html";

有任何想法吗??

4

1 回答 1

0

如果$REPstatG0C1包含字符串0,那么它还包含一个尾随回车符。当文件转储到终端时,该行的其余部分将覆盖零。

$ perl -e'print "0\rabc\n"'
abc

您可以通过使用来验证这一点less

0^Mabc

或者od -c

$ perl -e'print "0\rabc\n"' | od -c
0000000   0  \r   a   b   c  \n
0000006

但我不明白你会如何"0\r"从那个代码中得到,所以我相信你所说的不是真的。找出什么,你就会发现你的问题。

于 2013-05-30T19:47:48.717 回答