免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2457 | 回复: 3

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

论坛徽章:
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
发表于 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
发表于 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
发表于 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

基于案例的 SQL 优化实战训练营

讲师:中电福富特级专家梁敬彬,参与本次课程培训,你将收获:
1. 能编写出较为高效的 SQL;
2. 能解决70%以上的数据库常见优化问题;
3. 能得到老师提供的高效的相关工具和解决方案;
4. 能举一反三,收获不仅仅是 SQL 优化。
现在购票享受8.8折优惠!
----------------------------------------
优惠时间:2019年3月20日前

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP