#!/usr/bin/env perl use strict; use warnings; use Benchmark(); Benchmark::cmpthese( -1, { sub_join_1 => sub { sub { join shift @_, @_; }->( ", ", 1 .. 100 ); }, do_join_1 => sub { do { local @_ = ( ", ", 1 .. 100 ); join shift @_, @_; }; }, } ); __END__ $ perl bench_do_sub_1.pl Rate do_join_1 sub_join_1 do_join_1 17935/s -- -73% sub_join_1 66991/s 274% --