$foo->bar(myarg1 => "myval", myarg2 => "baz"); #### sub bar { my $self = shift @_; my $args = Argpass::new('strictpolicy', @_); my $argone = $args->accept('myarg1', 'defaultvalue'); my $argtwo = $args->mandate('myarg2'); $args->argok(); # And the function goes on, provided all mandated arguments are passed in and any arguments that needed type checking passed it successfully, anything that needed processing was processed, etc.. # ... # ... }