in reply to Re^2: How do a make an IP look up non-greedy?
in thread How do a make an IP look up non-greedy?

Here is an idea...
This gets the first 4 space separated things and the 5th thing is left all together. Parsing that last thing will be the most difficult.

#!usr/bin/perl -w use strict; while ( my $line =(<DATA>) ) { my @tokens = my ($ip,$date,$time,$number,$text)= $line =~ m/^(\S+)\s*(\S+)\s*(\S+)\s*(\S+)\s*(.*)$/; print "Line =\t$line"; foreach my $token (@tokens) { print "\t$token\n"; } } ########### Output ################### #Line = 10.30.147.23 2009-06-15 09:04:47 1245053087 Hel +p for Hospices no-email no-comment # 10.30.147.23 # 2009-06-15 # 09:04:47 # 1245053087 # Help for Hospices no-email no-comment #Line = 192.9.200.49 2009-06-15 09:04:50 1245053090 Alz +heimer's Society/Alzheimer Scotland no-email no-comment # 192.9.200.49 # 2009-06-15 # 09:04:50 # 1245053090 # Alzheimer's Society/Alzheimer Scotland no-email no-comment #Line = 10.30.117.36 2009-06-15 09:04:50 1245053090 Hel +p for Hospices no-email no-comment # 10.30.117.36 # 2009-06-15 # 09:04:50 # 1245053090 # Help for Hospices no-email no-comment #Line = 10.30.135.9 2009-06-15 09:04:50 1245053090 NSPC +C Childline no-email no-comment # 10.30.135.9 # 2009-06-15 # 09:04:50 # 1245053090 # NSPCC Childline no-email no-comment #Line = 10.30.198.18 2009-06-15 09:04:59 1245053099 Hel +p for Hospices no-email no-comment # 10.30.198.18 # 2009-06-15 # 09:04:59 # 1245053099 # Help for Hospices no-email no-comment __DATA__ 10.30.147.23 2009-06-15 09:04:47 1245053087 Help for Hospi +ces no-email no-comment 192.9.200.49 2009-06-15 09:04:50 1245053090 Alzheimer's So +ciety/Alzheimer Scotland no-email no-comment 10.30.117.36 2009-06-15 09:04:50 1245053090 Help for Hospi +ces no-email no-comment 10.30.135.9 2009-06-15 09:04:50 1245053090 NSPCC Childline + no-email no-comment 10.30.198.18 2009-06-15 09:04:59 1245053099 Help for Hospi +ces no-email no-comment