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


in reply to Poker module question

sub ScoreHand { # returns the score of the passed in @hand or ShortHan +d my @hand = @_; return(7462) unless(@hand == 1 || @hand == 5); my $sh +rt; my $aflg = 0; $aflg = 1 if(ref($hand[0]) eq 'ARRAY'); my $aref; if( $aflg ) { $aref = $hand[0]; } else { $aref = \@hand; } if(@{$aref} == 1) { $shrt = $aref->[0]; } else { $shrt = ShortHand($aref); } if( $slow ) { return(SlowScoreHand($shrt)); } else { return( $zdnh{$shrt}); } }

IMHO that would look better as:

sub ScoreHand { # returns the score of the passed in @hand or ShortHan +d return 7462 unless @_ == 1 || @_ == 5; my @hand = @_; my $aref = ref $hand[ 0 ] eq 'ARRAY' ? $hand[ 0 ] : \@hand; my $shrt = @$aref == 1 ? $aref->[ 0 ] : ShortHand( $aref ); return $slow ? SlowScoreHand( $shrt ) : $zdnh{ $shrt }; }