foreach my $newq (keys %hash1) { foreach my $oldq(keys %hash2) { if ( $newq eq $oldq) { foreach my $newx1(@{$hash1{$newq}{x1}}) { foreach my $oldx1(@{$hash2{$oldq}{x1}}) { if ($newx1 == $oldx1) { print "$newq\t$newx1\t$oldx1\n"; } if ($newx1 != $oldx1) { print "$newq\t$newx1\t$oldx1\n"; } }