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


in reply to Multiple Conditional Statements

The best solution to finding dupes is almost always a hash.
use strict; use warnings; my ($RB1, $RB2, $WR1, $WR2, $TE1) = (1, 2, 3, 1, 4); { my %lookup; for ($RB1, $RB2, $WR1, $WR2, $TE1) { if ($lookup{$_}++) { print "Dupe $_\n"; last; } }}

Replies are listed 'Best First'.
Re^2: Multiple Conditional Statements
by dolmen (Beadle) on Sep 12, 2013 at 07:59 UTC
    This should work as the original values are numbers, but this is inefficient as the numeric values have to be stringified to be put as keys the hash. And the hash construction itself counts too.
      That only matters if you are working with literally millions of items, and the alternative is far worse. Constructing a hash is more efficient than, say, sorting a large list of items.