2013-02-26 82 views
0

我有两个打印语句,一个接一个。Perl打印精确位置

print("Number of cars"); 
printf("%10d","$somevariable"); 

print("Number of blue cars"); 
printf("%10d","$somevariable"); 

print("Number of red cars"); 
printf("%10d","$somevariable"); 

我的问题是,变量的值不会垂直对齐。它会看起来像这样

Number of Cars  0 
Number of blue Cars  0 
Number of Red Cars  0 

是否有任何可能的方式将它们对齐到水平线上的某个点?例如,总是将所有东西都打印在80个空格处?

编辑:输出到终端。

干杯

+0

所有dependson多久你的第一列得,你可必须字数它,然后决定最长的字符串以匹配长度..为什么不尝试输出在HTML?您可以使用表格轻松显示内容 – Vahid 2013-02-26 12:26:43

+1

@vahid:HTML?到终端?或一个文本文件? – pavel 2013-02-26 12:28:20

+1

这显然不是产生这个输出的实际代码,因为它加载了语法错误。 – geoffspear 2013-02-26 12:29:46

回答

3

包括在printf的标签:

printf("%-20s%10d\n","Number of cars", $somevariable) 
printf("%-20s%10d\n","Number blue of cars", $someothervariable) 
+0

不错 - 必须说有一段时间没有练过perl,但是效果不错 – Vahid 2013-02-26 12:39:36

+0

这对我来说不幸没有效果。 – 2013-02-26 13:11:43