В Perl, как я делаю хеш из массивов @A
и @B
наличие равного числа элементов? Цель состоит в том, чтобы иметь каждое значение @A
как ключ для оценки в @B
. Получающийся хеш %C
был бы, затем позволить однозначно определить элемент от @B
предоставление ключа от @A
.
use List::MoreUtils 'mesh';
my %c = mesh @a, @b;
Вот как это делается внутри (если вы уверены в равном количестве элементов):
my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
Если я правильно понимаю проблему:
my %c;
$c{$a[$_]} = $b[$_] for (0 .. @a-1);
A - ключи, B - значения хэша C:
use strict;
use warnings;
my @a = 1 .. 3;
my @b = 4 .. 6;
my %c;
for (0 .. $#a) {
$c{$a[$_]} = $b[$_]
}
Помните, что в массиве A не должно быть дубликатов значений.