我是perl的新手,我无法找到是否可以在perl中操作输出格式。
代码
print "$arOne[i] => $arTwo[i]\n";
我希望oputput像
8 => 9
10 => 25
7 => 456
如果有可能,那该怎么办?
答案 0 :(得分:7)
您想使用printf
。
printf ("%2d => %-3d\n", $arOne[$i], $arTwo[$i]);
格式说明嵌入在%
和一封信之间。在您的情况下,您打印数字,因此您需要字母d
。留给d
的数字指定要为该数字保留的位数。在您的情况下,我假设左边的数字最多包含两位数,而右边的数字最多包含三位数。这可能会有所不同最后,-
前面的3d
告诉printf
左(而不是右)对齐数字。
答案 1 :(得分:0)
本着TMTOWTDI-ness的精神,还有perl formats的旧设施:
#! /usr/bin/perl
use strict;
use warnings;
use List::MoreUtils qw(each_array);
my @arOne = (8, 10, 7);
my @arTwo = (9, 25, 456); # @arTwoDeeTwo ? @ceeThreePO ?
my ($one, $two);
format STDOUT =
@> => @<<
$one,$two
.
# Now write to the format we described above
my $next_pair = each_array(@arOne, @arTwo);
while (($one, $two) = $next_pair->()) {
write;
}
<强>更新强>
请注意,这种“报告生成”功能在当代perl编程中很少使用。 printf
suggestion通常更灵活(并且不那么令人惊讶)。然而,似乎很遗憾,更不用说perl中有关perl中格式化的格式。