&foo (bar=>"1"); sub foo { %args=@_; %defaults=(foo=>9, bar=>8, baz=>7); foreach ("foo", "bar", "baz") { defined ($args{$_}) || {$args{$_}= $defaults{$_}} ; print $args {$_} } }