@list = qw (one two three); %args = ( arg1 => 'string', arg2 => 5, arg3 => \@list ); sub1(%args); sub sub1 { my %args = ( arg1 => 'default', arg2 => 0, arg3 => undef, @_ ); print "$_ => $args{$_}\n" for keys %args; }