use Benchmark::Timer; $T = new Benchmark::Timer; $T->start( 'autoviv' ); $auto[ $_ ] = 1 for map{ 10**$_ } 0 .. 7; $T->stop( 'autoviv' ); $#pre = 10**7; $T->start( 'prealloc' ); $pre[ $_ ] = 1 for map{ 10**$_ } 0 .. 7; $T->stop( 'prealloc' ); $T->report; 1 trial of autoviv (93.750ms total) 1 trial of prealloc (15.625ms total) #### use Benchmark::Timer; $T = new Benchmark::Timer; $T->start( 'scalar'), $x = ' ' x 2**24, $T->stop( 'scalar' ) for 1 .. 10; $T->report; 10 trials of scalar (359.375ms total), 35.938ms/trial