如何在perl中操作输出

时间:2013-05-06 13:25:54

标签: perl

我是perl的新手,我无法找到是否可以在perl中操作输出格式。

代码

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

我希望oputput像

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

如果有可能,那该怎么办?

2 个答案:

答案 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中格式化的格式。