哈希和数组的Perl哈希 - 打印数组内容

时间:2013-05-02 05:20:39

标签: perl hash perl-data-structures

具有以下数据结构。我想打印关键TUESDAY的整个数组。尝试以下方式,但它不起作用。我不希望有一个额外的声明,即将数组引用转换为变量并稍后打印出来。我想在print函数的单个语句中完成它。

my $FILE_LIMIT = {
    CHECK => "ON",
    ISANE => {
        CHECK     => "ON",
        MONDAY    => 33,
        TUESDAY   => [10, 20, 30, 40],
        WEDNESDAY => 12,
        THURSDAY  => 13,
        SATURDAY  => 14,
        SUNDAY    => 15
    } };

print "array val: " . $FILE_LIMIT->{ISBANE}->{TUESDAY}[1 .. $#] . "\n";

4 个答案:

答案 0 :(得分:4)

print "array val: " . join (' ', @{ $FILE_LIMIT->{ISANE}->{TUESDAY} }), "\n";

答案 1 :(得分:2)

正如您所猜测的,数组引用位于$FILE_LIMIT->{ISANE}{TUESDAY},因此使用

取消引用它
print "array val: @{$FILE_LIMIT->{ISANE}{TUESDAY}}\n";

<强>输出

array val: 10 20 30 40

答案 2 :(得分:2)

print"  @{ $FILE_LIMIT->{ISANE}->{TUESDAY}}\n";

输出:

  10 20 30 40  

你基本上是在尝试取出代码中的数组切片,如果你只想取出数组的特定元素,尝试理解下面的代码将从数组中取出一些元素,这很有用。

my @test = @{ $FILE_LIMIT->{ISANE}->{TUESDAY}};
print " @{$FILE_LIMIT->{ISANE}->{TUESDAY}}[1 .. $#test] \n";

输出:

20 30 40

答案 3 :(得分:0)

my $FILE_LIMIT = {
    CHECK => "ON",
    ISANE => {
        CHECK     => "ON",
        MONDAY    => 33,
        TUESDAY   => [10, 20, 30, 40],
        WEDNESDAY => 12,
        THURSDAY  => 13,
        SATURDAY  => 14,
        SUNDAY    => 15
    } };

print $_,"\n",foreach(@{$FILE_LIMIT->{ISANE}->{TUESDAY}});