in reply to What I am missing here
You'll also need to dereference that reference, inside sub pick_a_card, of course:
#PICK A CARD sub pick_a_card { my $deckref = shift; my $card=pop(@{$deckref}); return $card; } [download]