#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $file='logs.txt'; my @ips; my @agents; my @timeresult; open(my $fh, '<', $file) or die("error open $file ($!)\n"); while(my $line=<$fh>) { if($line=~/([\d.]+) - - \[(.+?)\] "(.+?)" (\d+) (\d+) "(.+?)" "(.+?)"/) { my ($ip,$time,$request,$result,$filesize,$referer,$useragent)=($1,$2,$3,$4,$5,$6,$7); push(@timeresult,$time); push(@ips,$ip); push(@agents,$useragent); } } close($fh); my $starttime=$timeresult[0]; my $endtime=$timeresult[-1]; print Dumper(\@ips); print Dumper(\@agents);