in reply to Accept user options with defaults and report unknowns.
I have to say I quite like the way delete @arg{@unknown} reads.sub get_unknown_keys (\%;) { my $hash = shift; my %allow; @allow{keys %$hash} = (); delete @allow{@_}; return keys %allow; } sub func { my %arg = ( foo => 1, bar => 'baz', quux => 42 ); my @allow = keys %arg; %arg = (%arg, @_); if(my @unknown = get_unknown_keys %arg, @allow) { carp "Ignoring unkown parameters: @unknown"; delete @arg{@unknown}; } # do stuff. }
Makeshifts last the longest.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Accept user options with defaults and report unknowns.
by BrowserUk (Patriarch) on May 30, 2003 at 03:37 UTC |