#!/usr/local/bin/perl -w use strict; my %aa=(uno=>1, due=>3); my %bb=(due=>2, uno=>1); my @k_aa = sort keys %aa; my @k_bb = sort keys %bb; my $equal = 0; if ($#k_aa == $#k_bb) { $equal++; for (0..$#k_aa) { $equal--, last if $k_aa[$_] ne $k_bb[$_] } if ($equal) { for (@k_aa) { $equal--, last if $aa{$_} ne $bb{$_} } } } print "\%aa and \%bb are ", @{['not equal', 'equal']}[$equal], "\n";