#!/usr/bin/perl use strict; use warnings; use Benchmark qw 'cmpthese'; our @dates = qw [092205 092305 092605]; our (@mb, @me, @fb, @fe); cmpthese(-1, { map_block => '@mb = @dates; map {s{(\d{2})(\d{2})(\d{2})}{$1/$2/$3}} @mb', map_expr => '@me = @dates; map s{(\d{2})(\d{2})(\d{2})}{$1/$2/$3}, @me', for_block => '@fb = @dates; for (@fb) {s{(\d{2})(\d{2})(\d{2})}{$1/$2/$3}}', for_expr => '@fe = @dates; s{(\d{2})(\d{2})(\d{2})}{$1/$2/$3} for @fe', }); die unless "@mb" eq "@me" && "@mb" eq "@fb" && "@mb" eq "@fe"; __END__ Rate for_block for_expr map_block map_expr for_block 43115/s -- -1% -2% -6% for_expr 43530/s 1% -- -1% -5% map_block 43840/s 2% 1% -- -5% map_expr 45948/s 7% 6% 5% --