免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3898 | 回复: 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会,7折限时优惠重磅来袭!
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。

限时七折期:2019年8月31日前


----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP