을 병합 비교 I가 내가 그들 모두 사이에 공통적 인 사람을 찾기 위해 함께 여섯 해시의 키를 비교하고 여기에 코드의 작업 비트. 그런 다음 각 해시의 값을 새 해시의 한 값으로 결합합니다. 제가하고자하는 것은 이것을 확장 가능하게 만드는 것입니다. 난 쉽게 내 코드로 다시 갈 필요하고이를 변경하지 않고 100-3 해시를 비교에서 갈 수 있도록하고 싶습니다. 이걸 어떻게 성취 할 수 있을지에 대한 생각? 코드의 나머지 부분은 이미 다른 입력 양에 대해 잘 작동하지만, 이것이 내가 막힌 부분입니다. 같은일반적인 키에 대한 여러 해시 값
my %h = %{combine_hashes(\%h1, \%h2, \%h3)};
... 나 :
my $comparison = List::Compare->new([keys %{$posHashes[0]}], [keys %{$posHashes[1]}], [keys %{$posHashes[2]}], [keys %{$posHashes[3]}], [keys %{$posHashes[4]}], [keys %{$posHashes[5]}]);
my %comboHash;
for ($comparison->get_intersection) {
$comboHash{$_} = ($posHashes[0]{$_} . $posHashes[1]{$_} . $posHashes[2]{$_} . $posHashes[3]{$_} . $posHashes[4]{$_} . $posHashes[5]{$_});
}
단지를 만들 서브 루틴을 만들고 해시 참조를 전달하면 내부에서 필요한 루핑을 쉽게 수행 할 수 있습니다. 예 : 'my @hashes = @_; 내 $ href (@hashes) {...}'. – TLP