我正在尝试将变量打印到文件(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";
任何想法??
答案 0 :(得分: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"
,所以我相信你所说的不是真的。找出什么,你会发现你的问题。