我是新來的Perl,我無法找到我是否可以在Perl中操作輸出格式。如何操作Perl中的輸出
像
print "$arOne[i] => $arTwo[i]\n";
代碼我想oputput要像
8 => 9
10 => 25
7 => 456
如果可能的話,那該怎麼辦呢?
我是新來的Perl,我無法找到我是否可以在Perl中操作輸出格式。如何操作Perl中的輸出
像
print "$arOne[i] => $arTwo[i]\n";
代碼我想oputput要像
8 => 9
10 => 25
7 => 456
如果可能的話,那該怎麼辦呢?
你想使用printf
。
printf ("%2d => %-3d\n", $arOne[$i], $arTwo[$i]);
的格式化指令被嵌入%
和字母之間。在你的情況下,你打印數字,所以你需要信d
。留給d
的號碼指定要爲該號碼保留多少位數。在你的情況下,我假定左邊的數字最多由兩位數字組成,而正確的數字最多由三位數字組成。這可能有所不同。最後,3d
前面的-
告訴printf
左邊(而不是右邊)對齊數字。
在TMTOWTDI岬的精神,也有不少世界舊設施:
#! /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;
}
UPDATE
請注意,此「報告生成」功能在當代的Perl編程很少使用。 printf
suggestion通常更靈活(並且不太令人驚訝)。然而,在perl中關於格式的問題中不提及格式問題,這似乎很可惜。
TMTOWTDI有可能過分。格式不應該用於任何事情。 – friedo 2013-05-06 15:11:30
@弗裏多,我不反對。 – pilcrow 2013-05-06 15:13:08