免费注册 查看新帖 |

Chinaunix

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

一个循环 的那个帖子咋锁贴了呀 [复制链接]

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-08-29 15:53 |只看该作者 |倒序浏览
本帖最后由 grshrd49 于 2013-08-29 15:54 编辑

给你写了一个 你试试
@sxd229
  1. use strict;
  2. my @a = <DATA>;
  3. my $do = 0;
  4. my @doarr;
  5. my @resule;
  6. for my $aa (@a){
  7.         chomp $aa;
  8.         if($aa =~ /^a\s+?(.*)/){
  9.                 @doarr = map{$1.$_}@doarr;
  10.                 push @resule,@doarr;
  11.                 @doarr = ();
  12.                 next;
  13.         }
  14.         push @doarr,$aa;
  15. }
  16. print "$_\n" for(@resule);

  17. __DATA__
  18. 11
  19. 22
  20. 33
  21. a 1
  22. 44
  23. 55
  24. 66
  25. a 2
  26. 77
  27. 88
  28. 99
  29. a 3
复制代码

论坛徽章:
0
2 [报告]
发表于 2013-08-29 15:55 |只看该作者
非常感谢!

我也不知道为啥被锁,仙子 给个理由先

论坛徽章:
0
3 [报告]
发表于 2013-08-29 16:07 |只看该作者
试了一下,很给力! 感谢!

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
4 [报告]
发表于 2013-08-29 19:33 |只看该作者
回复 3# sxd229

这样就只在22前添加a后的值了
  1. use strict;
  2. my @a = <DATA>;
  3. my $do = 0;
  4. my @doarr;
  5. my @resule;
  6. for my $aa (@a){
  7.         chomp $aa;
  8.         if($aa =~ /^a\s+?(.*)/){
  9.                 @doarr = map{$1.$_}@doarr;
  10.                 push @resule,@doarr;
  11.                 @doarr = ();
  12.                 next;
  13.         }
  14.         push @doarr,$aa if($aa eq "22");
  15. }
  16. print "$_\n" for(@resule);

  17. __DATA__
  18. 11
  19. 22
  20. 33
  21. a 1
  22. 44
  23. 55
  24. 66
  25. a 2
  26. 77
  27. 88
  28. 99
  29. a 3
复制代码

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
5 [报告]
发表于 2013-08-30 00:22 |只看该作者
本帖最后由 mcshell 于 2013-08-30 00:22 编辑
  1. my @arr;
  2. /^a\s+(\d+)(?{print map{$1.$_}@arr and undef @arr})/?():push @arr,$_ while <DATA>;
  3. __DATA__
  4. ..
复制代码

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
6 [报告]
发表于 2013-08-30 01:04 |只看该作者
回复 5# mcshell


    赞啊! mcshell

论坛徽章:
7
戌狗
日期:2013-12-15 20:43:38技术图书徽章
日期:2014-03-05 01:33:12技术图书徽章
日期:2014-03-15 20:31:17未羊
日期:2014-03-25 23:48:20丑牛
日期:2014-04-07 22:37:44巳蛇
日期:2014-04-11 21:58:0915-16赛季CBA联赛之青岛
日期:2016-03-17 20:36:13
7 [报告]
发表于 2013-08-30 01:08 |只看该作者
也试试:
  1. #!/usr/bin/perl
  2. while (<DATA>) {
  3.     /^a.*(\S+)$/
  4.       ? print map $1 . $_, splice @_
  5.       : push @_, $_;
  6. }
  7. __DATA__
  8. 11
  9. 22
  10. 33
  11. a 1
  12. 44
  13. 55
  14. 66
  15. a 2
  16. 77
  17. 88
  18. 99
  19. a 3
复制代码

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
8 [报告]
发表于 2013-08-30 08:44 |只看该作者
回复 7# rubyish


    向大牛学习

论坛徽章:
3
摩羯座
日期:2013-09-04 12:01:36申猴
日期:2013-10-23 12:12:23CU十二周年纪念徽章
日期:2013-10-24 15:41:34
9 [报告]
发表于 2013-08-30 09:12 |只看该作者
回复 7# rubyish


    很妙
求教splice

论坛徽章:
0
10 [报告]
发表于 2013-08-30 09:27 |只看该作者
都是高人,学习了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP