我经常在 Perl 中打印出列/行数据,比方说,从散列中。
这很简单:
foreach my $k(keys %h)
{
print $k, "\t", $h{$k}, "\n";
}
但是,如果键恰好有一个不同的长度,那么格式看起来非常参差不齐。我调查了format ,它通常对于我正在寻找的东西来说太重量级了,这是一个“简单”的列行对齐 pretty-print 。
最佳答案
我想你会找到printf
有用。这是一个小例子:
printf("%10s\t%10s\n", $k, $h{$k});
## prints " key\t value\n"
## prints " longer_key\t longer_value\n"
长值不会被截断,您可以在 block 内更改文本对齐方式:
%10s
- 表示长度为 10 的字符串类型(左对齐)%-10s
- 表示长度为 10 的字符串类型(右对齐)
格式的完整列表在 sprintf
man page 上.
关于perl - 如何在不使用 Perl 格式的情况下格式化列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1730749/