in reply to Re^3: Making a hash with lists
in thread Making a hash with lists
Try this variation of your benchmark:
#! perl use strict; use warnings; use Benchmark 'cmpthese'; use List::MoreUtils 'zip'; # Hands up if you can predict the result? : +) sub zip1 { my @list1 = @{shift()}; my @list2 = @{shift()}; my @zip; while (@list1+@list2) { push(@zip, shift(@list1), shift(@list2)); } @zip } sub zip2 { my( $r1, $r2 ) = @_; map { $r1->[ $_ ], $r2->[ $_ ] } 0 .. ( $#$r1 > $#$r2 ? $#$r1 : $#$r2 ); } for my $length (10, 1000, 10000, 100000) { my @a = 1 .. $length; my @b = reverse @a; print "For $length elements:\n"; cmpthese(-3, { copy => sub{ my @res = zip1( \@a, \@b ) }, deref => sub{ my @res = zip2( \@a, \@b ) }, CPAN => sub{ my @res = zip( @a, @b ) }, }); print "\n"; }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^5: Making a hash with lists
by Porculus (Hermit) on Jun 28, 2008 at 16:29 UTC | |
by BrowserUk (Patriarch) on Jun 28, 2008 at 19:08 UTC |