for my $r (@rand) {
return 0 if $a[$r] ne $b[$r];
}
return 1;
####
#!/usr/bin/perl
use strict;
use warnings;
use Benchmark qw(:all) ;
use List::Util qw(shuffle);
use Digest::MD5 qw(md5);
open my $JOHN, '<', 'dictionary' or die $!;
my @array = <$JOHN>;
my @sorted = sort @array;
$a = \@array; $b = \@sorted;
timethese(5000, {
'join' =>
sub {
return join('|',@$a) eq join('|', @$b);
},
'md5' =>
sub {
return Digest::MD5::md5(@$a) eq Digest::MD5::md5(@$b);
},
});
####
perl cmparray.pl
Benchmark: timing 5000 iterations of join, md5...
join: 29 wallclock secs (27.91 usr + 0.18 sys = 28.09 CPU) @ 178.00/s (n=5000)
md5: 27 wallclock secs (25.20 usr + 0.19 sys = 25.39 CPU) @ 196.93/s (n=5000)