http://www.perlmonks.org?node_id=766302


in reply to Preferred technique for named subroutine parameters?

While I lean towards the flat list, I dislike more having to remember which convention is required in a particular piece of code. So I tend to support both forms:
sub new { my $class = shift; my $args = (ref $_[0] eq 'HASH') ? shift : { @_ }; # ... }
update: possibly bad example - that's how I retrofit some of the legacy code at work. New code would inherit new() from Moose or Mouse :)