- 论坛徽章:
- 307
|
- #!/usr/bin/perl
- use strict;
- use warnings;
- my ($Name, $Print, $Continue) = ("", 0, 0);
- my %hStat = map {$_, 0} ("Y", "H");
- while (<>){
- my ($name, $flag) = /([^|]+)[|](\w+)\Z/g;
- if ($Name ne $name){
- if ($Print){
- my ($y, $h) = @hStat{"Y", "H"};
- print join ("|", $Name, $y + $h, $h, $y), "\n";
- ($Print, %hStat) = (0, ());
- }
- $Name = $name;
- if ($flag eq 'H'){
- $Print = $Continue = 1;
- $hStat{$flag}++;
- next;
- }
- $Print = $Continue = 0;
- print join ("|", $Name, 0), "\n";
- next;
- }
- if ($Continue){
- if (!exists $hStat{$flag}){
- $Continue = 0;
- next;
- }
- $hStat{$flag}++;
- }
- }
复制代码 perl abc.pl abc
--------------------------------------------
张三|0
李四|4|3|1
王五|0
|
|