#!/usr/bin/perl use strict; use warnings; use Benchmark qw{cmpthese}; cmpthese( -1 => { no_assignment => sub { for( 1..10_000 ) { my %hash; $hash{$_} = $_; $hash{-$_} = -$_; } }, assignment => sub { for( 1..10_000 ) { my %hash = (); $hash{$_} = $_; $hash{-$_} = -$_; } }, } ); __END__ Rate assignment ano_assignment assignment 99.4/s -- -8% no_assignment 108/s 9% -- #### Rate no_assignment assignment no_assignment 96.6/s -- -3% assignment 99.4/s 3% -- #### Rate assignment no_assignment assignment 1068/s -- -37% no_assignment 1685/s 58% -- #### Rate assignment no_assignment assignment 11967704/s -- -49% no_assignment 23642004/s 98% --