czpx.net
当前位置:首页 >> 关于pErl数组抽取的问题 >>

关于pErl数组抽取的问题

sub randomElem { my ($want, @array) = @_ ; my (%seen, @ret); while ( @ret != $want ) { my $num = abs(int(rand($#array))); if ( ! $seen{$num} ) { ++$seen{$num}; push @ret, $array[$num]; } } return @ret; }my @array = ( 'A'..'Z' )...

数组的下标从0开始,$#array是一个特殊的变量,它的值就是数组array的最后的元素的下标,假设array有3个值,最后的下标就是2(依次是0、1、2),假设你的数组名字为@HHH,最后的索引就是$#HHH. 负值索引就是从后面依次取数组的索引,依次是(-1,-...

可以试一下这几种方式,每种方式各有优劣: #!/bin/perl -w use strict; my @arr = ( "aaa","bbb","ccc","ddd","eee","fff"); # 这个是数组 my $vv = "ddd"; # 这个是要查找的变量 # 方法1,:使用类似c语言的风格,遍历这个数组,查找变量是否匹...

具体函数我不清楚是否可以直接实现,但是可以通过变相实现。 #!/usr/bin/perl -w use strict; my $string = "China"; my @Array; for(my $i = 0; $i < length($string); $i++){ $Array[$i] = substr($string,$i,1); } for(my $i = 0; $i < @Arra...

判断数值是否是空数组可以采取if(@array),如果为假就不是空数组。也可以用if(!defined $array[0])判断,即如果数组@array中第一个元素$array[0]没有定义,那么这就是个空数组。 如果要将一个数组@array元素清空,可以直接把空数组()赋值过去即...

@m = (1,1,2,2,3,4,4);rm_same(\@m);print "@m";sub rm_same {my $arr = shift;my $i = 0;my %k;while ($i [$i]}) {splice @$arr, $i, 1;}else {$k{$arr->[$i]} = 1;$i++;}}}

sub choose(){ my (@c1, @c2, @c3); @c1 = @_; @c2 = sort @_; @c3 = reverse @_; return (\@c1,\@c2,\@c3); } my @arr = (1,2,3,5,4); my (@a,@b,@c); my @refs = &choose(@arr); @a = @{$refs[0]}; @b = @{$refs[1]}; @c = @{$refs[2]}; print...

可以看个例子$str ="abc12abc34ccccabc56";@m = $str =~/(abc\d+)/g;print "@m";

最起码有N种方法,我四年不看perl了,忘了很多,以前水平一个语句就能解决问题。现在只能用最笨的方法两层循环,效率较差。 my $k,$i,$j; open (OUTFILE, ">>输出.fasta"); for($i=0;$i

$b = [@a]; push @$b, shift @a while @a; 顺便说两句: 这不叫字符串多值, 这叫 Array Reference (数组引用, 引用数组 ... ) Perl 不会将 string 当成 char array 的. perl 没有 char 这种变量形态 如可以, 请避用 $a $b (或 @a @b ) , 这两个变...

网站首页 | 网站地图
All rights reserved Powered by www.czpx.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com