my @array1 = ( {'platformid' => '22', ... }, {'platformid' => '100', ... }, ..., ); my @ordered_array1 = sort { $a->{platformid} <=> $b->{platformid} }@array1; # ascending numeric sort ...; my $rc = Compare(\@ordered_array1, \@ordered_array2); ...; #### my @array1 = ( {'platformid' => '22', 'some' => 'stuff', ... }, {'platformid' => '100', ... }, ..., {'platformid' => '22', 'other' => 'things', ... }, ..., ); #### my @array3 = sort { $a->{platformid} cmp $b->{platformid} or $a->{da} cmp $b->{da} or $a->{ma} cmp $b->{ma} or $a->{os} cmp $b->{os} or $a->{cc} cmp $b->{cc} or $a->{objecttype} cmp $b->{objecttype} or $a->{host} cmp $b->{host} or $a->{size} cmp $b->{size} } @array1; #### sub enormously_complex_compare { $a->{platformid} <=> $b->{platformid} # numeric? or $a->{da} cmp $b->{da} or $a->{ma} cmp $b->{ma} or $a->{os} cmp $b->{os} or $a->{cc} cmp $b->{cc} or $a->{objecttype} <=> $b->{objecttype} # numeric? or $a->{host} <=> $b->{host} # numeric? or $a->{size} <=> $b->{size} # ??? comparing array references ??? } my @array3 = sort enormously_complex_compare @array1; my @array4 = sort enormously_complex_compare @array2; ...