m***b 发帖数: 11 | 1 想从一个array中随机抽样,比如,取两个.应当是常见问题.
#!/usr/local/bin/perl
#Define an Array and sampling size
my @myArray=('a','c','d','e','f','g','h','j','k','m','n','t');
my $numPick=2;
#use sub:selection_sample()
my @randPick=selection_sample(\@myArray,$numPick);
print (@randPick);
#### subroutine from perlmonk ####
sub selection_sample {
my ($array,$num)=@_;
die "Too few elements (".scalar(@$array).") to select $num from\n"
unless $num<@$array;
my @results;
my $pos=0;
while ( @results | t****t 发帖数: 6806 | 2 you returned a ref to array, and assign it to array? dereference it first
【在 m***b 的大作中提到】 : 想从一个array中随机抽样,比如,取两个.应当是常见问题. : #!/usr/local/bin/perl : #Define an Array and sampling size : my @myArray=('a','c','d','e','f','g','h','j','k','m','n','t'); : my $numPick=2; : #use sub:selection_sample() : my @randPick=selection_sample(\@myArray,$numPick); : print (@randPick); : #### subroutine from perlmonk #### : sub selection_sample {
| c**t 发帖数: 2744 | 3 can you do $num < @$refArray?
【在 m***b 的大作中提到】 : 想从一个array中随机抽样,比如,取两个.应当是常见问题. : #!/usr/local/bin/perl : #Define an Array and sampling size : my @myArray=('a','c','d','e','f','g','h','j','k','m','n','t'); : my $numPick=2; : #use sub:selection_sample() : my @randPick=selection_sample(\@myArray,$numPick); : print (@randPick); : #### subroutine from perlmonk #### : sub selection_sample {
| c********x 发帖数: 84 | 4 it should be like : print "@array\n";
print @array, would print the array's address, not the elements. |
|