in reply to Handling named function arguments
There exists also Class::ParamParser module which provides the similar functionality (sometimes more and sometimes less).