打印带分隔符的数组数组

时间:2013-06-05 11:54:23

标签: perl data-dumper

我写了一个简单的perl脚本:

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

$Data::Dumper::Pair     = '';
$Data::Dumper::Sortkeys = 1;
$Data::Dumper::Terse    = 1;

my @A=( [ 1,2 ],[ 3,4,5 ], [ 6,7,8 ]);
print Dumper(@A);

我得到的输出是:

> ./temp9.pl
[
          1,
          2
        ]
[
          3,
          4,
          5
        ]
[
          6,
          7,
          8
        ]

但我需要的是在它们之间用逗号,分隔的元素(数组)。 我对使用Data:Dumper非常熟悉。有没有解决这个问题? 预期的输出是:

[
          1,
          2
        ],
[
          3,
          4,
          5
        ],
[
          6,
          7,
          8
        ]

我遇到的另一个问题是在数据转储器中有什么方法我可以在数组中的每个元素之前添加一些文本吗?例如,在数组的数组中,我可以在每个数组的开头括号之前添加“xyz”吗?

1 个答案:

答案 0 :(得分:0)

<强>已更新#2

尝试使用print 'my $aRef = ', Dumper(\@A), ";";。它将打印如下:

my $aRef = [
  [
    1,
    2
  ],
  [
    3,
    4,
    5
  ],
  [
    6,
    7,
    8P
  ]
]
;

如果您想更改Dumper的输出,可以将stdout重定向到变量(请参阅open)。

print map { "Something $_\n" } split "\n", Dumper(\@A);

输出:

Something [
Something   [
Something     1,
Something     2
Something   ],
Something   [
Something     3,
Something     4,
Something     5
Something   ],
Something   [
Something     6,
Something     7,
Something     8
Something   ]
Something ]