#! /usr/bin/perl use Benchmark qw(cmpthese); use constant {OBJECT => 0, KERNEL => 1, HEAP => 2, SESSION => 3, }; cmpthese( 0, { POE => sub { poe_style(qw(a b c d)); }, Normal => sub { regular_style(qw(a b c d)); }, Ref_Copy => sub { reg_ref('a', [qw(b c d)]); }, Ref_Named => sub { ref_named('a', { kernel => 'b', heap => 'c', session => 'd', } ); }, Named => sub { named_style('a', kernel => 'b', heap => 'c', session => 'd', ); }, Shift => sub { shift_style(qw(a b c d)); }, } ); sub poe_style { my ($self, $kernel, $heap, $session) = @_[ OBJECT, KERNEL, HEAP, SESSION ]; 0; } sub regular_style { my $self = shift; my ($kernel, $heap, $session) = @_; 0; } sub reg_ref { my $self = shift; my ($kernel, $heap, $session) = @$_[0]; 0; } sub named_style { my $self = shift; my %opts = @_; 0; } sub ref_named { my $self = shift; my $opts = $_[0]; 0; } sub shift_style { my $self = shift; my $kernel = shift; my $heap = shift; my $session = shift; 0; }