http://qs321.pair.com?node_id=11016


in reply to RE: Re: Array to Hash
in thread Array to Hash

While we're on the topic of benchmarking, I'd just like to, for the hell of it, add the worst possible answer to this question:
map { $code .= "\$hash{$_} = 1;\n" } @array; eval "$code";
And now for a little program, borrowed from httptech:
use Benchmark; my @array = qw(a b c d e f g h i j k l m n o p q r s t u v w z y z); my %hash; timethese(10000, { 'btrott' => sub { @hash{@array} = (1) x @array; }, 'plaid' => sub { my $code map { $code .= "\$hash{$_} = 1;\n" } @array; eval "$code"; } });
Outputs
Benchmark: timing 10000 iterations of btrott, plaid... btrott: 1 wallclock secs ( 0.56 usr + 0.00 sys = 0.56 CPU) plaid: 23 wallclock secs (22.07 usr + 0.06 sys = 22.13 CPU)
Don't know why i threw this in. Guess I just didn't want to waste the effort:)