in reply to Clarify this Regular Expression

just to clear this up - the whole line is...
push @ips, [ split /\s+/ ] if /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/;
which is splitting the current line on one/more whitespaces into an anonymous array and pushing a ref to that array onto the @ips array _but_only_if_ the following regex matches an IP (crudely) at the beginning of the current line... *phew*

I belive you are confusing \d and \D
\d matches any digit (equiv to [0-9])
\D matches any non-digit (equiv to [^0-9])

hope this helps

   larryk                                          
perl -le "s,,reverse killer,e,y,rifle,lycra,,print"