用Perl的朋友帮帮忙

刚学Perl,还是个菜鸟,希望帮帮忙!
比如:$string="abcdefghijk";
我要输出$string中的“cdef”,该怎么弄?

作者: 小小Mavis   发布时间: 2010-09-02

用substr。
  1. my $sub  = substr $s, 2, 4;   
复制代码
参考perldoc -f substr

作者: 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)
                }

作者: 小小Mavis   发布时间: 2010-09-03

给的代码不够,可能是$i的值超过了@name的索引(下标)的范围了吧

作者: alick   发布时间: 2010-09-03

alick
大侠,再帮我看看:
  1. @space=();
  2. $#space=2500;
  3. my $findoverlap=0;
  4. while ($str1=<EXON>) {
  5.   @var1 = split /\s+/,$str1;
  6.   foreach $i ($var1[5]-1..$var1[6]-1) {
  7.       $space[$i]=1;
  8.      }
  9.   }   
  10. while ($str2=<HG>) {
  11.   @var2 = split /\s+/,$str2;
  12.    if ($var2[0] eq $var1[3]) {
  13.      $findoverlap=0;
  14.      foreach $j ($var2[1]-1..$var2[2]-1) {
  15.           if ($space[$j]==1) {
  16.               $findoverlap=1;
  17.               last;
  18.           }
  19.        }
  20.     }
  21.      if($findoverlap==0)
  22.      {
  23.         print RESULT $str2;
  24.      }
  25.    
  26.   }
复制代码
文件我都打开了。。。谢谢!

作者: 小小Mavis   发布时间: 2010-09-03

alick


$var1[5]  ,$var1[6]   ,$var2[1]  ,$var2[2] 都是数值。

作者: 小小Mavis   发布时间: 2010-09-03