in reply to Regular Expression help
my ($read, $found); for (;;) { defined( $_ = <$fh> ) or die("Premature eof\n"); ($read, $found) = /^(\d+) items read, (\d+) found,/ and last; } my @foos; while (<$fh>) { next if /^Can't call method "disconnect"/; my ($field0, $field1, $field2) = / ^ ( [a-z]+ ) \s+ ( [a-z]{2} [0-9]{8} (?: : [a-z]{2} [0-9]{8} )* ) \s+ ( \d+(\.\d+)? ) $ /x or last; my @field1s = split /:/, $field1; push @foos, [ $field0, \@field1s, $field2 ]; } ... do something with $read, $found and @foos ...
foo, field0, field1 and field2 need to be replaced with better names.
Update: Fixed bug.
|
|---|