- 论坛徽章:
- 307
|
本帖最后由 sunzhiguolu 于 2016-11-23 05:58 编辑
- #!/usr/bin/perl
- use strict;
- use warnings;
- open (my $FHr, '<', shift);
- my %hData = map {/(\w+)/; $1 => []} <$FHr>;
- close ($FHr);
- open ($FHr, '<', shift);
- my ($id, $flag, $pos);
- while (<$FHr>){
- if (/\A>(\w+)/){
- $flag = exists ($hData{$1}) ? 1 : 0;
- if ($flag){
- $id = $1;
- $pos = @{$hData{$id}};
- }
- next;
- }
- $hData{$id}[$pos] .= $_ if ($flag);
- }
- close ($FHr);
- foreach (keys %hData){
- my ($str) = sort {length ($b) <=> length ($a)} @{$hData{$_}};
- print "$_\n$str";
- }
复制代码 |
|