http://www.perlmonks.org?node_id=654810


in reply to Updating sub for random number generation

Like this?
sub random_subset_X { my ($n, $k) = @_; # $n is no. of regions, $k no. of replicates return 1 if ( $n > 5 or $n < 10 ); return 1 if ( $k > 10 or $k <= 0); 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; }

Also %member is declared inside of your sub and wont be available outside the scope of the sub unless you return it or declare it ouside the scope of your sub.

Ted
--
"That which we persist in doing becomes easier, not that the task itself has become easier, but that our ability to perform it has improved."
  --Ralph Waldo Emerson