#!/usr/bin/perl use strict; use warnings; my @parms = ('handle','thing'); @_ = ('handle','thing'); use Benchmark qw(cmpthese); cmpthese(2000000, { 'one_sub' => \&one_sub, 'anon_sub' => sub { my ($handle, $thing) = @_; }, 'double_sub' => sub { one_sub(); }, 'parm2_sub' => sub { double_sub('handle','thing'); }, 'std_args' => sub { std_args('handle','thing'); }, 'std_args_d' => sub { std_args('handle','thing'); }, } ); exit; ############################################################################ sub one_sub { my ($handle, $thing) = @_; } sub d_sub { "1"; } sub double_sub { d_sub(@_); my ($handle, $thing) = @_; } sub std_args_d { my %args = @_; d_sub(@_); my ($handle, $thing) = @args{'handle','thing'}; } sub std_args { my %args = @_; my ($handle, $thing) = @args{'handle','thing'}; }