#!/usr/bin/perl -w # -*-Perl-*- use Benchmark; my @ary; sub init_val {$_[0]} sub dimmeloop { for($i = 0; $i <= 10_000; $i++) { $ary[$i] = init_val($i); } 1; } sub dimmeunroll { $idx = 0; for($i = 0; $i < 10_000; $i += 10) { $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); $ary[$idx++] = init_val($i); } 1; } sub tillys { @ary = map {init_val $_} (0..10000); 1; } timethese(1000,{ 'dimmesdale loop'=>"dimmeloop", 'dimmesdale PU'=>"dimmeunroll", 'perlish'=>"tillys", });