+ -
当前位置:首页 → 问答吧 → 怎么不正确

怎么不正确

时间:2011-06-18

来源:互联网

  1. while(<DATA>){
  2.         if($.==1){
  3.                 chomp;
  4.                 %tab=();
  5.                 @b=map{($tab{$_}==1)?($_):($_=$_.2)} split(/\s+/,$_);
  6.                 print "@b\n";
  7.         }else{
  8.                 s/"(.*?)"/\1/g;
  9.                 print;
  10.         }
  11. }
  12. __DATA__
  13. Column1        Column2        Column3        Column4 Column3 Colum5
  14. Data        Data        "Data"        Data        "Data"        Data
复制代码
运行结果:
Column12 Column22 Column32 Column42 Column32 Colum52
Data    Data    Data    Data    Data    Data

某兄的题目,结果没搞定...

作者: mysqllog   发布时间: 2011-06-18

回复 mysqllog
  1. @b=map{($tab{$_}++)?($_.$tab{$_}):($_)} split(/\s+/,$_);
复制代码

作者: guap514   发布时间: 2011-06-18

本帖最后由 huycwork 于 2011-06-18 14:43 编辑

本着交流的原则,这样实现不是好很多么:
  1. my @row = qw/Column1    Column2    Column3    Column4 Column3 Column5/;
  2. my %tab;
  3. for (@row){
  4.     ++$tab{$_};
  5.     s/$/$tab{$_}/e if $tab{$_} > 1;
  6. }
  7. print "@row\n";
复制代码

作者: huycwork   发布时间: 2011-06-18

回复 huycwork


    我的写的不好,没有价值的,没有问题吧,斑竹不会通辑我吧

作者: mysqllog   发布时间: 2011-06-18

回复 huycwork


    恩,不错,学习了。

作者: mysqllog   发布时间: 2011-06-18