in reply to Methods and attributes?

Shameless Plug: I've written Getargs::Mixed which does named/positional parameters and some validation all in one. (Hubris is a virtue after all.)

Internally, it's essentially just:

sub my_sub { my %params = @_; print "Title: $params{-title}\n"; }