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

gman1983 has asked for the wisdom of the Perl Monks concerning the following question:

Some guys helped me on here yesterday. Thanks. The code takes poker hands and analyzes the hand I have "AsAc" and removes either of my cards from all hands in the array of arrays. It's almost done, but now I need to be able to reference the array of array with updated hands. example: I need to be able to reference @theirHands@hand3 after I've removed all hands that have my cards, because later I will randomly pick hands from those arrays and assign them to other players,and do the proccess all over again. It's a poker iterator that finds prwin values and i want to remove "known" cards so they can't be reassigned. The process with happen 10,0000 times to find prob of situation happening. Please help me Perl Monks.
use strict; use warnings; my @hand3 = qw/KsQs JsAs/; my @hand4 = qw/AsKc 2s3s/; my @hand899 = qw/As3c/; my @theirHands = (\@hand3, \@hand4, \@hand899); my $myHand = "AcAs"; my %myCards = map {$_ => 0} $myHand =~ /(.{2})/g; print "My hand: ", join '', keys %myCards, "\n"; for my $hands (@theirHands) { # If any of my cards match an opposing hands' card, reject the opp +osing hand my @retained; for my $hand (@$hands) { next if grep {exists $myCards{$_}} $hand =~ /(.{2})/g; push @retained, $hand; } print "@retained\n"; }
Prints: My hand: AsAc KsQs 2s3s