- 论坛徽章:
- 307
|
本帖最后由 sunzhiguolu 于 2015-11-06 10:24 编辑
回复 1# 最爱在深秋
试下: 测试环境 Windows
- #!/usr/bin/perl
- use strict;
- use warnings;
- sub _average{
- my (@a_vals, $sum) = (split /\s*/, pop);
- foreach (@a_vals){
- $sum += $_;
- }
- $sum / @a_vals;
- }
- my ($format, $start_index, $end_index, $id, @a_vals) = ("%s %6s %s\n");
- while (<>){
- if (m/\A>(\S+)/){
- $id = $1;
- next;
- }
- s/\s+//g;
- if ((@a_vals = m{[1-9]+}g) > 0){
- for (my $i = 0; $i < scalar @a_vals; $i++){
- $start_index = index ($_, $a_vals[$i]) + 1;
- $end_index = length ($a_vals[$i]) + $start_index - 1;
- printf $format, $id, join ('-', $start_index, $end_index), _average ($a_vals[$i]);
- }
- }else{
- printf $format, $id, join (' ', 0, 0), '';
- }
- }
复制代码 |
|