У меня есть некоторые значения и корни, которые генерируют эти значения. Например, в формате значения root.
100-0
200-1
300-2
100-2
400-1
300-3
100-3
Теперь мне нужно создать массив Ha sh в Perl в следующем формате. ключи 100, 200, 300, 400; и значения, соответствующие каждому ключу, приведены ниже (так же, как корни значений).
100-0,2,3
200-1
300-2,3
400-1
Я даю код, который я написал для достижения одни и те же. Но значение для каждого ключа равно нулю.
Ниже часть кода находится внутри al oop, в котором он предоставляет различные root числа на каждой итерации в $ root_num. Как в приведенном выше примере, они равны 100, 200, 300, 400.
Root Число равно 100, 200, 300 и 400 в каждой итерации.
my %freq_and_root;
my @HFarray = ();
my @new_array = ();
if(exists $freq_and_root{$freq_value})
{
@HFarray = @{ $freq_and_root{$freq_value} };
$new_array[0] = $root_num;
push(@HFarray,$new_array[0]);
$freq_and_root{$freq_value} = [@HFarray] ;
} else {
$new_array1[0] = $root_num;
$freq_and_root{$freq_value} = $new_array1[0];
}
Наконец, после l oop я печатаю га sh следующим образом:
foreach ( keys %freq_and_root) {
print "$_ => @{$freq_and_root{$_}}\n";
}
Ниже приведен вывод, я пропускаю первый элемент в каждой клавише -значение
100-2 3
200-
300-3
400-
Также, как я могу постобработать ха sh, чтобы корни не повторялись в различные значения ключа и root должны быть указаны в ключе с наибольшим номером, в этом случае будут следовать значения ключа Ha sh
100-0
200-
300-2 3
400-1