2013-05-06 67 views
2

我是新來的Perl,我無法找到我是否可以在Perl中操作輸出格式。如何操作Perl中的輸出

print "$arOne[i] => $arTwo[i]\n"; 

代碼我想oputput要像

8 => 9 
10 => 25 
7 => 456 

如果可能的話,那該怎麼辦呢?

回答

7

你想使用printf

printf ("%2d => %-3d\n", $arOne[$i], $arTwo[$i]); 

格式化指令被嵌入%和字母之間。在你的情況下,你打印數字,所以你需要信d。留給d的號碼指定要爲該號碼保留多少位數。在你的情況下,我假定左邊的數字最多由兩位數字組成,而正確的數字最多由三位數字組成。這可能有所不同。最後,3d前面的-告訴printf左邊(而不是右邊)對齊數字。

0

在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中關於格式的問題中不提及格式問題,這似乎很可惜。

+0

TMTOWTDI有可能過分。格式不應該用於任何事情。 – friedo 2013-05-06 15:11:30

+2

@弗裏多,我不反對。 – pilcrow 2013-05-06 15:13:08