我遇到了一些问题.最初,我有以下格式输入:
12345 apple
12 orange
Run Code Online (Sandbox Code Playgroud)
我将第一列保存为$ num,将第二列保存为$ fruit.我希望输出看起来像这样(见下文).我希望输出对齐,就像$ num的长度一样.实际上,$ num将包含可变长度的数字.
12345 apple
12 orange
Run Code Online (Sandbox Code Playgroud)
如建议的那样,我使用以下代码:
$line = sprintf "%--10s %-20s", $num, $fruit;
Run Code Online (Sandbox Code Playgroud)
此解决方案在命令行显示方面效果很好,但是当我尝试通过HTML显示此格式时,不会保留此格式.例如..
print "<html><head></head><body>
$line
</body></html>";
Run Code Online (Sandbox Code Playgroud)
这会在格式化之前产生与原始相同的输出.你们有一个关于如何在html基于网络的显示中保留sprintf格式的建议吗?我尝试使用空格填充$ num,但以下代码似乎对我不起作用.
$num .= (" " x (10 - length($num)));
Run Code Online (Sandbox Code Playgroud)
无论如何,我将不胜感激任何建议.谢谢!
fri*_*edo 11
HTML忽略了额外的空格.事实上它可能显示比例字体意味着即使有额外的空格也不会排队.
简单的选择是用<pre>标签包围文本,默认情况下会显示一个等宽字体并保留空格.或者,您可以让代码生成HTML表.