in reply to Format / Logical Expression / Style Opinions: my, ternary, subroutine, @_
I'd do it this way.
sub xyz { croak 'Bad args' unless @_ == 2 or @_ == 3; my( $yyy, $xxx, $ttt ) = reverse @_; ... } [download]