or with hashes.
&foo (bar=>"1");
sub foo {
%args=@_;
%defaults=(foo=>9, bar=>8, baz=>7);
foreach ("foo", "bar", "baz") {
defined ($args{$_}) || {$args{$_}= $defaults{$_}} ;
print $args {$_}
}
}
update : or better yet, with the keys that you expect the sub to know :
&foo (bar=>"1");
sub foo {
%args=@_;
%defaults=(foo=>9, bar=>8, baz=>7);
foreach (keys %defaults) {
defined ($args{$_}) || {$args{$_}= $defaults{$_}} ;
print $_ ," - ",$args {$_},"\n";
}
}
update : or better yet, just like Fletch sez. Nice stuff.