#!/usr/bin/perl -w use strict; my $filename = "access.log"; my ($client,$identuser,$authuser,$date,$tz,$method,$url,$protocol,$status,$bytes,$refer,$platform,$extendedinfo) open( FILE, "< $filename" ) or die ("Couldn't open $filename : !$\n" ); while () { if ( /^(\S+) (\S+) (\S+) \[(\S+) (\S+)\] "(\S+) (\S+) (\S+)" (\S+) (\S+) "(\S+)" "(\S+) (.*?)"$/ ) { ($client,$identuser,$authuser,$date,$tz,$method,$url,$protocol,$status,$bytes,$refer,$platform,$extendedinfo) = ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13); } else { print "Unmatched log entry : $_"; }; }; close FILE;