use strict; use warnings; use List::MoreUtils qw( uniq ); my %deck; for my $suit (qw( Clubs Hearts Diamonds Spades )) { for my $rank (qw( 2 3 4 5 6 7 8 9 10 J Q K A )) { $deck{$suit}{$rank} = 1; } } $, = " "; $\ = "\n"; # Prints 10 2 3 4 5 6 7 8 9 A J K Q print sort { $a cmp $b } uniq map { keys $deck{$_} } keys %deck;