John Hennessy wrote:
> Hi, I have two different hashes built from separate data and need to
> find the common then differing items.
>
> $HoA1{$custnum} = [ $uid, $firstname, $lastname ];
> $HoA2{$uid} = [ $custnum, $firstname, $lastname ];
>
> I have looked at examples for "Finding Common or Different Keys in Two
> Hashes" but the keys must be the same.
> To make the keys the same I would like to effect a reverse function but
> only reversing the key and the first value leaving the remaining array
> items in place.
>
> Examples or suggestion would be most appreciated.
> Thanks
>
> John.
my $uids_by_name = {}
foreach $fields_ref (keys %HoA1) {
my $uid = $fields_ref->[0];
my $name_slice = [$fields_ref->[1,2] ];
$uids_by_name->{$name_slice} = [] unless $uids_by_name->{$name_slice};
push @{$uids_by_name->{$name_slice}}, $uid;
}
Oooh, yuck! I just realized that you have a potentially insoluble problem
here. Since you don't seem to have a cross-reference between custid and
uid, and since names are *never* determinate as references, I can't see any
way to programatically associate the two structures.
Joseph
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>