sub random_subset_X { my ($n, $k) = @_; # $n is no. of regions, $k no. of replicates my %member; while ($k > 0) { my $x = int(rand()*$n)+1; # generates random number 1..$n. redo if $member{$x}; $member{$x} = 1; } continue { $k--; } sort keys %member; }