我有一个数组的哈希值和两个变量-1 list和1标量值
我该怎么做?
我想要两件事。首先是每个键的列表。 其次,我需要$ b来获取每个键的最后一个数组元素的值
%abc=(
0=>[1,2,3],
1=>[1,5]
);
@a;
$b;
对于键0,我需要@a具有[1,2],对于键1,我需要@a具有[1]。 对于0键,我需要$ b的值为3,对于键1我需要$ b的值为5
答案 0 :(得分:3)
我了解您希望@a
保留除最后一个值之外的所有值,并且希望$b
仅保留最后一个值。怎么样:
use feature 'say';
my %abc = (0 => [1,2,3], 1 => [1,5]);
for my $key (keys %abc) {
my @a = @{$abc{$key}};
my $b = pop @a;
say "@a / $b"
}
答案 1 :(得分:2)
我几乎肯定会使用类似the other solution here的名称。但是这里有一个不同的解决方案:a)使用values()
而不是keys()
,b)使用reverse()
简化(?!)分配。不要这样做:-)
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
my %abc = (0 => [1,2,3], 1 => [1,5]);
for (values %abc) {
my ($b, @a) = reverse @$_;
@a = reverse @a;
say "@a / $b";
}