提取多行问题!

提取多行问题!

文本如下:
..................................................................................................................................

11001
***************************************

                  03/12/2007 09:08



Nu   G.Wg PD  CPD  FV   PV   CIR  Oval   DL   HD

     (mg) (mmWG ) (%)  (%)  (mm)  (mm)  (10*%)



  1  740  396 ---- ---- ---- 23.95 0.13 904  96

  2  748  396 ---- ---- ---- 24.08 0.11 912  88

  3  744  402 ---- ---- ---- 23.94 0.16 923  77

  4  744  396 ---- ---- ---- 23.96 0.28 903  97

  5  743  402 ---- ---- ---- 23.94 0.28 908  92

外观:合格

11002
***************************************

                  03/12/2007 09:12



Nu   G.Wg PD  CPD  FV   PV   CIR  Oval   DL   HD

     (mg) (mmWG ) (%)  (%)  (mm)  (mm)  (10*%)



  1  740  395 ---- ---- ---- 23.95 0.13 904  93

  2  748  39r ---- ---- ---- 24.08 0.11 912  88

  3  744  404 ---- ---- ---- 23.94 0.16 923  73

  4  744  392 ---- ---- ---- 23.96 0.28 903  94

  5  743  422 ---- ---- ---- 23.94 0.28 908  94

外观:合格

11003
***************************************

                  03/12/2007 09:15


1  740  395 ---- ---- ---- 23.95 0.13 904  93

2 ......

..................................................................................................................................

将关键字(11001)存入Name中;
而只将每个关键字下面的数据栏 存入 Reference 中:
1  740  396 ---- ---- ---- 23.95 0.13 904  96
2  748  396 ---- ---- ---- 24.08 0.11 912  88
3  744  402 ---- ---- ---- 23.94 0.16 923  77
4  744  396 ---- ---- ---- 23.96 0.28 903  97
5  743  402 ---- ---- ---- 23.94 0.28 908  92
#!/usr/bin/perl
use warnings;
use strict;

my %h;
my $name;

open(F,"<urfile") or die "Can't open urfile: $!\n";
while(<F>) {
        if(/^(\d){5}$/) {
                $name = $_;
                next;
        }
        $h{$name} .= $_ if /^[0-9-. ]+$/;
}


[Copy to clipboard] [ - ]
CODE:
#! /usr/bin/perl -w
use strict;        use warnings;
use Data::Dumper;

open(FN,"yourFileName")||die $!;
my %hash;
my $id;
while(<FN>){
        $id=$1,next if(/^\s*(\d{5})\s*$/);
        $hash{$id} .= $_ if(/-/);
}
print Dumper(%hash);

谢谢,又学习了
感激中...