perl多处匹配用given when?还是用其他的方法啊?

如有文本
  1. aa
  2. 11
  3. 11
  4. bb
  5. DDDDDDD
  6. .......
  7. cc
  8. 11
  9. 11
  10. dd
  11. AAAAAAAA
  12. .......
  13. ee
  14. 11
  15. 11
  16. ff
  17. LLLLLLLLLLL
复制代码
处理后的结果为;
  1. aa
  2. 11
  3. 11
  4. bb
  5. cc
  6. 11
  7. 11
  8. dd
  9. ee
  10. 11
  11. 11
  12. ff
复制代码
就是提取aa到bb,cc到dd,ee到ff的行,用given when这语句????
若文本较大.given when效率怎么样??

作者: perlnewbie   发布时间: 2011-05-15

while (<DATA>) {
    chomp;
    given ($_) {
        when (/^aa$/ .. /^bb$/) { push @a, $_ }
        when (/^cc$/ .. /^dd$/) { push @c, $_ }
    }
}

作者: zhlong8   发布时间: 2011-05-15