sub rand_sam { my ($n,@n) = (shift,@_); return 0 unless ($n < scalar @n); my %seen = (); until (keys %seen == $samples) { $seen{$pop[rand @pop]}=1; } return(keys %seen); }