sub riffle { splice @_, @_/2 - $_, 0, pop for 0 .. (@_/2)-1; return @_; } my @deck = glob "{2,3,4,5,6,7,8,9,T,J,K,Q,A}{C,D,H,S}"; for my $shuffle (1 .. 10) { @deck = riffle @deck; print "shuffle #$shuffle:\n@deck\n"; }