具有以下数据结构。我想打印关键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";
答案 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}});