diff options
Diffstat (limited to 'sort-interim.pl')
-rwxr-xr-x | sort-interim.pl | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sort-interim.pl b/sort-interim.pl new file mode 100755 index 0000000..2bd2a31 --- /dev/null +++ b/sort-interim.pl @@ -0,0 +1,32 @@ +#!/usr/bin/env perl + +my $this; +my %elts; + +sub process { + my $data = shift; + my $key; + + $data =~ m@\s+(U[[:xdigit:]]+)\s+@; + $key=$1; + if ($elts{$key}) { + print STDERR "Warning: key $key found more than once.\n"; + } + $elts{$key}=$data; +} + +while (<>) { + if (/(?:###\+)?<MM>/) { + while (/(?:###\+)?<MM>/) { + $this .= $_; + $_ = <>; + } + process $this; + $this=''; + } + $this .= $_; +} + +for $k (sort keys %elts) { + print $elts{$k}; +} |