- 论坛徽章:
- 32
|
本帖最后由 yestreenstars 于 2014-07-22 10:03 编辑
回复 34# newfinder
没有比这更丑陋的代码了~{:2_169:}- #!/usr/bin/perl
- my($distance, $min, $max, @name, @value);
- while(<DATA>){
- chomp;
- if($. > 1){
- my($temp1, $temp2, $temp3) = /(\S+:)(\d+)-(\d+)/;
- if($temp1 eq $distance and $temp2 <= $max){
- $max = $temp3;
- my @fields = split;
- push(@name, $fields[0]);
- push(@value, $fields[2]);
- next;
- }else{
- print join(',', @name) . " $distance$min-$max " . join(',', @value), $/;
- undef @name;
- undef @value;
- }
- }
- my @fields = split;
- push(@name, $fields[0]);
- push(@value, $fields[2]);
- ($distance, $min, $max) = /(\S+:)(\d+)-(\d+)/;
- }
- print join(',', @name) . " $distance$min-$max " . join(',', @value), $/;
- __DATA__
- name1 dis1:1-5 1
- name2 dis1:2-6 2
- name1 dis1:7-9 3
- name1 dis1:10-12 3
- name2 dis1:11-14 2
- name2 dis2:5-8 4
- name1 dis2:6-12 5
- name2 dis2:7-14 2
- name2 dis2:14-15 3
- name1 dis2:17-19 4
- name2 dis2:20-22 1
- name2 dis2:21-25 6
复制代码 |
|