我是 perl 新手,我不知道是否可以在 perl 中操作输出格式。
对于像这样的代码
print "$arOne[i] => $arTwo[i]\n";
我希望输出像
8 => 9
10 => 25
7 => 456
如果有可能,那该怎么做?
我是 perl 新手,我不知道是否可以在 perl 中操作输出格式。
对于像这样的代码
print "$arOne[i] => $arTwo[i]\n";
我希望输出像
8 => 9
10 => 25
7 => 456
如果有可能,那该怎么做?
你想用printf
.
printf ("%2d => %-3d\n", $arOne[$i], $arTwo[$i]);
格式说明嵌入在和%
字母之间。在您的情况下,您打印数字,因此您需要 letter d
。左边的d
数字指定您要为该号码保留多少位数。在您的情况下,我假设左侧数字最多包含两位数,而右侧数字最多包含三位数字。这可能会有所不同。最后,-
前面的3d
告诉printf
左(而不是右)对齐数字。
本着 TMTOWTDI-ness 的精神,还有perl 格式的旧设施:
#! /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
建议通常更灵活(并且不那么令人惊讶)。然而,似乎很遗憾,更不用说 perl 中的格式与 perl 中的格式有关了。