To append the orphaned lines I haves set up an array that can be be manipulated during the while sequence, which is then printed after processing.
This appends the ophaned lines as in the case provided
#!/usr/bin/perl -w use strict; my @linearr; while (<DATA>) { chomp; if($_ =~ m{\[(\d{4}/\d{2}/\d{2}\s+\d{2}\:\d{2}\:\d{2})\]\s+\[( +\d{1,3})\]\s+ERRORMSG\s+(.*)}) { my $date = $1; my $err_no = $2; my $err_msg = $3; push @linearr, $date.' === '.$err_no.' === '.$err_msg."\n"; }else{ $linearr[@linearr-1] =~ s/\n$/\ $_\n/;} } print @linearr;
prints
__DATA__ [2012/02/16 00:08:34] [29] ERRORMSG unknown error Can't insert into pr +ice table Please check Valueprice.pm line 52. [2012/02/16 00:08:34] [39] ERRORMSG Invalid User [2012/02/16 00:14:52] [105] ERRORMSG missing conversion rate [2012/02/16 00:14:52] [29] ERRORMSG Can't use an undefined value as a +HASH reference at Value.pm line 77.
Coyote
In reply to Re: Not able to capture information
by Don Coyote
in thread Not able to capture information
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |