On 01/04/2011 13:57, Rob Dixon wrote:
>
> use strict;
> use warnings;
> 
> my $data;
> {
>    local $/;
>    $data =<DATA>;
> }
> 
> my $key = qr/ (?: \w+ [ ] )* \w+ /x;
> 
> my @xx = $data =~ /\G ( $key ) \s? : \s* (.+?) \s* (?=  $key \s? : | \z)/sgx;

My apologies, I had thought that there was always exactly one space
between the end of the key and the colon. In fact the field 'PM NODE
NUMBER' differs from all the others. The fix is to change this line to

  my @xx = $data =~ /\G ( $key ) \s* : \s* (.+?) \s* (?=  $key \s* : | \z)/sgx;

> 
> while (@xx) {
>    my ($key, $val) = splice @xx, 0, 2;
>    printf "%s=%s\n", $key, $val;
> }

Rob

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/


Reply via email to