$ perl -MO=Deparse,-p -e 'my $l = ref $a eq "ARRAY" ? ($a->[0] || $->[1]) : $a;' (my $l = ((ref($a) eq 'ARRAY') ? ($a->[0] || ($- > [1])) : $a)); -e syntax OK #### # Deal with the case of an item actually being an array ref to 1 or 2 # hashrefs. Don't assign to $a or $b, as they're aliases to the orignal my $l = ref $a eq 'ARRAY' ? ($a->[0] || $->[1]) : $a; my $r = ref $b eq 'ARRAY' ? ($b->[0] || $->[1]) : $b; #### my $l = ref $a eq 'ARRAY' ? ($a->[0] || $a->[1]) : $a; my $r = ref $b eq 'ARRAY' ? ($b->[0] || $b->[1]) : $b;