use strict; Foo::bar(); package Foo; use Carp qw(croak); sub bar { baz(one => 'uno', two => 'dos', three => ); } sub baz { croak "wrong number of arguments for baz(); has to be even" if scalar(@_) % 2; my %args = @_; print "func: one translates to $args{one} \n"; } __END__ wrong number of arguments for baz(); has to be even at - line 2