...we're pretty much beyond what split can do...
Mh, we know the format:
use Data::Dump;
use feature qw(say);
my $line =qq(127.0.0.1 - - [22/Apr/2015:13:35:04 +1000] "GET /bin/admi
+n.pl HTTP/1.1" 401 509);
my @bits = split /\s/, $line;
dd\@bits;
say qq(Host: $bits[0]);
say qq(Logname: $bits[1]);
say qq(User: $bits[2]);
say qq(Time: $bits[3] $bits[4]);
say qq(Request: $bits[5] $bits[6] $bits[7]);
say qq(Status: $bits[8]);
say qq(Size: $bits[9]);
__END__
monks>apache.pl
[
"127.0.0.1",
"-",
"-",
"[22/Apr/2015:13:35:04",
"+1000]",
"\"GET",
"/bin/admin.pl",
"HTTP/1.1\"",
401,
509,
]
Host: 127.0.0.1
Logname: -
User: -
Time: [22/Apr/2015:13:35:04 +1000]
Request: "GET /bin/admin.pl HTTP/1.1"
Status: 401
Size: 509
Regards, Karl
«The Crux of the Biscuit is the Apostrophe»