>> I have the following data that I'm trying to parse into an array.
>> There are 19 fields but with hosts 5 & 6 fields 6 & 7 do not have any
>> space between them.  This is how I get it from the OS and have no
>> control over it.
>> 
>> The maximum length for field 6 is 7 chars and field 7 is 6 chars.
>> 
>> 200508171648 host1.dom.com 0 0 14 2166 623 8 4 12 0 0 0 35 131 14 0 0 100
>> 200508171648 host2.dom.com 0 0 0 265 7563 5 3 8 0 0 0 34 66 7 0 0 100
>> 200508171648 host3.dom.com 0 0 0 461 8112 4 0 6 0 0 0 53 84 9 0 0 100
>> 200508171648 host4.dom.com 0 0 0 46 9468 5 3 9 0 0 0 39 75 8 0 2 98
>> 200508171648 host5.dom.com 0 1 0 7008342480 3 0 0 0 0 0 0 41 8 0 2 98
>> 200508171648 host6.dom.com 0 1 0 8936445548 3 0 0 0 0 0 0 14 5 0 0 100
>> 
>> I have tried the following, and several other combos, with no luck.
>> It matches the first 4 lines but fails for the last 2 because they
>> appear to have only 18 fields I assume.
>> @oput = /(\d+) (.+\..+\..+) (\d+) (\d+) (\d+) (\d{2,7}) (\d{2,6})
>> (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+) (\d+)
>> (\d+)/; 
>> 
> You are working much too hard to capture the data. Use split like:
> 
> @oput = split (/\s+/,$_);


@oput = split;

...works too.  By default, split operates on $_, and splits on whitespace,
discarding any initial whitespace.

I owe dinner to whoever originally made that decision.

- B




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to