用Perl的朋友帮帮忙
刚学Perl,还是个菜鸟,希望帮帮忙!
比如:$string="abcdefghijk";
我要输出$string中的“cdef”,该怎么弄?
比如:$string="abcdefghijk";
我要输出$string中的“cdef”,该怎么弄?
作者: 小小Mavis 发布时间: 2010-09-02
用substr。
如
复制代码
参考perldoc -f substr
如
- my $sub = substr $s, 2, 4;
作者: alick 发布时间: 2010-09-02
楼上高手
作者: dqshur 发布时间: 2010-09-03
alick
谢谢!
再问一下高手:
我的代码里有两个独立的while循环,第二个循环中要用到第一个循环的结果(比如一个数组@name),我在循环二中用$name[$i],为什么提示红色那一行有未初始化的值呢? foreach $i ($var2[1]-1..$var2[2]-1) {
if ($name[$i]==1)
}
谢谢!
再问一下高手:
我的代码里有两个独立的while循环,第二个循环中要用到第一个循环的结果(比如一个数组@name),我在循环二中用$name[$i],为什么提示红色那一行有未初始化的值呢? foreach $i ($var2[1]-1..$var2[2]-1) {
if ($name[$i]==1)
}
作者: 小小Mavis 发布时间: 2010-09-03
给的代码不够,可能是$i的值超过了@name的索引(下标)的范围了吧
作者: alick 发布时间: 2010-09-03
alick
大侠,再帮我看看:
复制代码
文件我都打开了。。。谢谢!
大侠,再帮我看看:
- @space=();
- $#space=2500;
- my $findoverlap=0;
- while ($str1=<EXON>) {
- @var1 = split /\s+/,$str1;
- foreach $i ($var1[5]-1..$var1[6]-1) {
- $space[$i]=1;
- }
- }
- while ($str2=<HG>) {
- @var2 = split /\s+/,$str2;
- if ($var2[0] eq $var1[3]) {
- $findoverlap=0;
- foreach $j ($var2[1]-1..$var2[2]-1) {
- if ($space[$j]==1) {
- $findoverlap=1;
- last;
- }
- }
- }
- if($findoverlap==0)
- {
- print RESULT $str2;
- }
-
- }
作者: 小小Mavis 发布时间: 2010-09-03
alick
$var1[5] ,$var1[6] ,$var2[1] ,$var2[2] 都是数值。
$var1[5] ,$var1[6] ,$var2[1] ,$var2[2] 都是数值。
作者: 小小Mavis 发布时间: 2010-09-03