perl中的转储数组

时间:2014-11-14 13:56:54

标签: arrays perl

我需要用数据填充一些数组并将其转储到屏幕上。 这是代码:

my @a;

@a[0] = 69;
foreach $sibling ($someotherlist){
    my $cha = $sibling->{"id"} * 1;

    if (defined @a[$cha]){
        @a[$cha] = 0;
    }

    @a[$cha] = @a[$cha] + 1;
}
print Dumper(@a);

问题是它只打印$ VAR1 = 69;
它应该是这样的:

$VAR1 = {
   0 => 69,
   1 => 30,
   20 => 90
}

3 个答案:

答案 0 :(得分:5)

始终将referencesData::Dumper一起使用,所以

print Dumper(\@a);

答案 1 :(得分:1)

您可能希望安装Data::Printer,可以在命令行中使用DDP别名作为-MDDPuse DDP;在应用程序中使用。在你的情况下:

use DDP; 

... # [rest of script] 

p @a ;

Data::Dumper仍然是标准,但DDP非常实用且易于配置。颜色和闪亮的东西以及p()快捷方式: - )使DDP易于用作"可视化辅助工具"用于数据结构。

答案 2 :(得分:0)

我已经成为了

的忠实粉丝
use JSON;
warn to_json(\%data,{canonical=>1,pretty=>1});

即使打字很乱。