On Thu, Jul 24, 2008 at 3:59 AM, Noah <[EMAIL PROTECTED]> wrote: > > Hi there, > > I loaded a bunch of configuration lines into a hash called $Input > now I am searching the hash to make sure specific lines are there. > > I want to print "NO" unless there is a match to the following ""check $ip > here"; > > but $ip could be the range as shown below. > > so a key like "check 2.2.2.2 here" would be accepted and NO would *not* be > printed and if the hash has a key with "check 2 here" then a NO *would* be > printed. > > my $ip = "[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"; > print CHANGE "NO\n" unless exists $Input{"check $ip here"}; > > > Cheers, > > Noah
Untested code. # Always... use strict; use warnings; my %ip = ...; #Get the lines as an array. my @lines = keys %ip; # Slight modification to the regex. Someone else's reply will probably have a more elegant method. my $ipSearch = qr/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/; # Use variables for filehandles. open my $CHANGE, "> $changeFile" or die; print CHANGE "NO\n" unless ( grep ( $ipSearch, @lines ) ); -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/