#!/usr/bin/perl -w use Apache::LogRegex; my $lr; my $log_format = '"%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""'; eval { $lr = Apache::LogRegex->new($log_format) }; die "Unable to parse log line: $@" if ($@); my $get_logs = ("march-logs/march-bannat.txt", "march-logs/march-logs-web2/march-bannat.txt", "march-logs/march-logs-web3/march-bannat.txt"); my $post_logs = ("march-logs/march-post.txt", "march-logs/march-logs-web2/march-post.txt", "march-logs/march-logs-web3/march-post.txt"); my %data; my %getRecords; my $postRecords; foreach ($get_logs) { my @array = &logToHash($_); } sub logToHash { my $file = $_; my %hash; my @AoH; open LOG, $file or die $!; while ( my $line_from_logfile = ) { eval { %data = $lr->parse($line_from_logfile); }; if (%data) { push @AoH, %data; } } return @AoH; }