in reply to resolved: Shorter than ternary?

Please define 'shorter'. If you just want less typing, use a subroutine:

#nvl : a common pl/sql command sub nvl { defined ($_[0]) ? $_[0] : $_[1] }

Or, you can use the fact that perl will use the second occurance of items in the assignment, but it might be less obvious, and they can override anything:

my $defaults = { requires_login => 0, template_file => 'template.tmp', inner_template => '', %_ }