in reply to oneliner for selecting multiple values from array
my @arr = ('A' .. 'Z'); my @combo; my $n = 2; # keep at it till we get $n random values in one pass do { @combo = (); my $i = 0; rand(1) < $n / ++$i && splice(@combo, rand(@combo), $n <= @combo, +$_) for @arr; } while @combo < $n; print "@combo\n";
|
|---|