免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5163 | 回复: 3
打印 上一主题 下一主题

运行结果报错 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2019-01-09 13:11 |只看该作者 |倒序浏览
#!/usr/bin/perl -w
use Data:umper;

$/=">";
my %unqs;

while (<DATA>{
        chomp;
        next if (m/^s*>/);
     my @line = (split /\n/,$_,2);
     $unqs{$line[0]}=$line[1] if (length($line[1]) > length($unqs{$line[0]}));
                print Dumper(%unqs);
}

__DATA__
>test1
GAGATGCAATCTTCGCAGCTAGG
>test2
GAGATGAAACAACGAGGGAAACGATGTT
>test1
AGAGCAGTG
>test3
AACGATGTTTGTGTATACCAAAAGCAATAAC
>test1
GCAATCTTCGCAGCTAGGCGAAAGGGAGATGAAACAACGA

运行结果如下:
Use of uninitialized value $line[0] in hash element at scrip_delet.pl line 11, <DATA> chunk 1.
Use of uninitialized value in numeric gt (> at scrip_delet.pl line 11, <DATA> chunk 1.
Use of uninitialized value in numeric gt (> at scrip_delet.pl line 11, <DATA> chunk 1.
Use of uninitialized value in numeric gt (> at scrip_delet.pl line 11, <DATA> chunk 2.

请问:我前面已定义哈希,为什么还提示我没有定义?应怎么修改?

论坛徽章:
0
2 [报告]
发表于 2019-01-13 10:51 |只看该作者
把 Dumper 移出while,可以了吧
  1. #!/usr/bin/perl -w
  2. use Data::Dumper;

  3. $/=">";
  4. my %unqs;

  5. while (<DATA>){
  6.         chomp;
  7.         next if (m/^s*>/);
  8.      my @line = (split /\n/,$_,2);
  9.      $unqs{$line[0]}=$line[1] if (length($line[1]) > length($unqs{$line[0]}));

  10. }
  11. print Dumper(%unqs);

  12. __DATA__
  13. >test1
  14. GAGATGCAATCTTCGCAGCTAGG
  15. >test2
  16. GAGATGAAACAACGAGGGAAACGATGTT
  17. >test1
  18. AGAGCAGTG
  19. >test3
  20. AACGATGTTTGTGTATACCAAAAGCAATAAC
  21. >test1
  22. GCAATCTTCGCAGCTAGGCGAAAGGGAGATGAAACAACGA
复制代码

论坛徽章:
0
3 [报告]
发表于 2019-01-14 15:07 |只看该作者
去掉Dumper还是不行。
运行结果报错:

Use of uninitialized value $line[0] in hash element at testf.pl line 10, <DATA> chunk 1.
Use of uninitialized value in numeric gt (>) at testf.pl line 10, <DATA> chunk 1.
Use of uninitialized value in numeric gt (>) at testf.pl line 10, <DATA> chunk 1.
Use of uninitialized value in numeric gt (>) at testf.pl line 10, <DATA> chunk 2.
Use of uninitialized value in numeric gt (>) at testf.pl line 10, <DATA> chunk 3


论坛徽章:
0
4 [报告]
发表于 2019-02-14 21:33 |只看该作者
把计算机当情人!情人节写程序。
  1. #!/usr/bin/perl -w
  2. use Data::Dumper;

  3. $/=">";
  4. my %unqs;

  5. while (<DATA>)
  6. {
  7.      chomp;
  8.      next if (m/^s*>/);
  9.      print $_."\n";   
  10.      my @line = (split /\n/,$_,2);
  11.    
  12.     if(@line)
  13.     {
  14.       if(exists($unqs{$line[0]}))
  15.       {
  16.               $unqs{$line[0]}=$line[1] if (length($line[1]) > length($unqs{$line[0]}));
  17.       }else
  18.       {
  19.               $unqs{$line[0]}=$line[1];
  20.       }
  21.     }
  22.    
  23.     print Dumper(%unqs);
  24.     print "-----------\n";
  25. }

  26. __DATA__
  27. >test1
  28. GAGATGCAATCTTCGCAGCTAGG
  29. >test2
  30. GAGATGAAACAACGAGGGAAACGATGTT
  31. >test1
  32. AGAGCAGTG
  33. >test3
  34. AACGATGTTTGTGTATACCAAAAGCAATAAC
  35. >test1
  36. GCAATCTTCGCAGCTAGGCGAAAGGGAGATGAAACAACGA
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP