in reply to newb regular expression question

I suspect that you forgot the s modifier for the regex.

#!/usr/bin/perl my $search = '10.2.56.75'; # the ip we are looking for, could pull fro +m @ARGV my $data; { # slurp in all of the info in the DATA section local $/ = undef; $data = <DATA>; } my ($lease) = $data =~ /lease $search {(.+?)}/is; # find the first mat +ch print $lease,"\n"; __DATA__ lease 10.2.56.40 { starts 3 2003/08/20 10:37:28; ends 3 2003/08/20 22:37:28; hardware ethernet 00:20:af:52:12:0f; uid 01:20:af:52:12:0f; client-hostname "Telephone"; } lease 10.2.56.75 { starts 3 2003/08/20 09:57:11; ends 3 2003/08/20 21:57:11; hardware ethernet 00:ef:18:ae:52:83; uid 01:00:ef:18:ae:52:83; client-hostname "beast"; } lease 10.2.56.77 { starts 2 2003/08/19 21:13:05; ends 3 2003/08/20 21:13:05; hardware ethernet 00:02:95:9b:78:18; uid 01:02:0b:95:9b:78:18; }