What prompted this was throwing @_ to a hash, like:
my ($self, %args) = @_;
And wanting to allow variables to be optional. The little snippet I posted basically sets a variable to a default if it isn't given in the arguments.
Again, this is a pointless question in that I don't need to answer it. I'm just curious and always try to figure out how a language "thinks" when I pick it up.