最开始是想对一个大样本数据集重新排序随机化,只想用简单的随机数生成就设想能够解决,暂时没有考虑分层随机化等方法。
@data=(1,2,3,4,5);
my $iter = combinations(@data, 2);
while (my $c = $iter->next) {
}
my $iter = permutations(@data);
while (my $c = $iter->next) {
最开始是想对一个大样本数据集重新排序随机化,只想用简单的随机数生成就设想能够解决,暂时没有考虑分层随机化等方法。
my $iter = permutations(@data);
while (my $c = $iter->next) {
三目运算冒号左右为表达式或者代码块,所以第二行等同于第三行,而不等同于第四行,第四行输出结果会一直为$test=321. 第四行和第五行效果一样,应该跟编译的时候生成的分析树有关
$wf_workflow=1;
$wf_workflow?($test=1233):($test=321); #if($wf_workflow){$test=1233;}else{ $test=321} #$wf_workflow?$test=1233:$test=321; ; $wf_workflow?$test=1233:$test,$test=321;
push(@INC,"I:\tool\perl");
print join("n",@INC);
Windows Perl 删除模块可用如下命令:
ppm uninstall XX::XX
关于@INC的注意事项* 当你提交一个use MyModule的时候,就会指示perl去搜索@INC数组中是否有此模块名。@INC通常包含: /perl/lib /perl/site/lib.“.”这个目录表示当前的工作目录。核心模块是安装在perl/lib目录中,非核心模块安装在perl/site/lib目录中。你可以向@INC中添加自定义目录。像下面这样: BEGIN { push @INC, '/my/dir' } # or BEGIN { unshift @INC, '/my/dir' } # or use lib '/my/dir';我们需要使用BEGIN块在编译时向@INC中添加值,此时是perl检查模块的时刻。 如果你等到程序被编译的时候就太晚了, perl会抛出一个异常,说“在@INC中无法找到MyModule”.使用push还是unshift方法添加值的区别是,perl搜索@INC的顺序 是从@INC中的第一个目录开始的。如果你在/perl/lib/、/perl/site/lib/和./中都有一个MyModule模块的话,那么 /perl/lib中的模块将首先被找到并使用。use lib用法可以起到和BEGIN{unshift @INC,$dir}一样的效果-请参看"perlman:lib:lib":http://www.perlmonks.org/?node= perlman%3Alib%3Alib . *use Foo::Bar意味着什么* use Foo::Bar并不意味着在@INC的目录中寻找一个叫做Foo::Bar.pm的模块文件。它的意思是在@INC的目录中寻找一个叫做‘Foo’的 “子目录”,然后在其中找一个叫做“Bar.pm”的“模块”。现在,如果我们成功"use"了一个模块,那么我们就可以通过完整的包路径语 法&PACKAGE::FUNCTION使用这个模块中的所有函数。当我们说&Foo::Bar::some_func的时候,我们指的 是“包的名字”而不是那个在use中曾使用的包含路径的文件名。这会允许你可以在一个use过的文件中包含很多包名字。实际使用中这些名字通常是相同的。