#! perl -slw use strict; sub cmpAoAs{ my( $a, $b ) = @_; my %h; $h{ $_ }++ for map{ @$_ } @$a; $h{ $_ }-- for map{ @$_ } @$b; return 0 == grep{ $_ } values %h; } my $ha = [ [1,2], [5,5,5], [1,2], [3,4] ]; my $hb = [ [4,3], [1,2], [2,1], [5,5,5] ]; print 'Same' if cmpAoAs $ha, $hb; __END__ P:\test>342841 Same