То, что вы хотите, невозможно, так как у вас не может быть списка значений, связанных с ключом feature3
. Вместо этого вам понадобится ссылка на массив.
Вы не можете сделать это в одном задании (или, по крайней мере, я не могу придумать, как это сделать), но это кажется сделать это относительно просто.
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use Data::Dumper;
my @feat = qw(feature1 feature2 feature3);
my @prod = qw(prod1 prod2 prod3 prod4);
my %hash;
if (@feat == @prod) {
@hash{@feat} = @prod;
} else {
@hash{@feat[0 .. $#feat - 1]} = @prod[0 .. $#feat - 1];
$hash{$feat[$#feat]} = [ @prod[$#feat .. $#prod] ];
}
say Dumper \%hash;
Обратите внимание: предполагается, что либо ваши два массива имеют одинаковую длину, либо @feat
короче @prod
.