#!/usr/bin/perl use common::sense; my $data = do { local $/; ; }; $data =~ s/\n(?!\[)/ /gs; for (split /\n/, $data){ my @line = split /[\[\] ]+|ERRORMSG /, $_, 6; print join(" === ", @line[1..3,5]), "\n"; } __DATA__ [2012/02/16 00:08:34] [29] ERRORMSG unknown error Can't insert into price 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. #### 2012/02/16 === 00:08:34 === 29 === unknown error Can't insert into price table Please check Valueprice.pm line 52. 2012/02/16 === 00:08:34 === 39 === Invalid User 2012/02/16 === 00:14:52 === 105 === missing conversion rate 2012/02/16 === 00:14:52 === 29 === Can't use an undefined value as a HASH reference at Value.pm line 77.