2011-04-28 13:25:47 INFO [main:114] Answer
2011-04-28 13:45:12 DEBUG [Populate::List:31] Answer
####
while (<$fh>) {
chomp;
my ($date, $time, $log_lvl, $trace, $xml) = split ' ', $_, 5;
}
####
my $twig = XML::Twig->new();
while (<$fh>) {
chomp;
my ($date, $time, $log_lvl, $trace, $xml) = split ' ', $_, 5;
my %data_structure;
$twig->parse($xml);
# Build up %data_structure using $twig
}
####
while (<$fh>) {
chomp;
my ($date, $time, $log_lvl, $trace, $xml) = split ' ', $_, 5;
my $data_structure = extract_data($xml);
}
sub extract_data {
my ($xml) = @_;
my $data = {};
my $twig = XML::Twig->new(
twig_handlers => {
Message => sub { handle_message(@_, $data) }
}
);
$twig->parse($xml);
return $data;
}
sub handle_message {
# ...
}