From: Garrett Goebel <ggoebel@goebel.ws>
Date: October 11, 2007 3:40:17 PM CDT
To: Emmanuel Mejias <emmanuel.mejias@gmail.com>
Cc: kcpm <kc@pm.org>
Subject: Re: [Kc] Need second look at this...
In order to fix your regex you'll need to tell us the difference
between somehostpm1 and dr-somehostpm1.
Will a "good" somehostpm1 never be preceeded by 'dr-'? If so...
# Shot at adhering to Perl Best Practices
open my($file), '<', '/etc/hosts';
while (my $line = <$file>) {
if ($line =~ /(?<!dr-)\S+pm1/) {
print $line;
}
}
# Quick'n Dirty
open FILE, '</etc/hosts';
map { print if /(?<!dr-)\S+pm1/ } <FILE>;
I haven't tested it... perhaps it'll work.
(?<!pattern) is a zero width negative look behind assertion. I.e.
it'll match anything that isn't preceeded by the pattern without
including it in the match.
Garrett
On Oct 11, 2007, at 2:44 PM, Emmanuel Mejias wrote:
trying to grep out some info from my /etc/hosts file...just to get
more practice with Perl and well for my personal pleasure, too.
#!/usr/bin/perl
open (FILE, "/etc/hosts");
@lines = <FILE>;
close (FILE);
foreach $line (@lines){
if ($line =~ /pm1/){
print $line;
}
}
the problem with this is that it's printing out some hosts that i
don't want that also have pm1 at the end.
somehostpm1 but it also gets my dr hosts (dr-somehostpm1)
thoughts?
by the way, i had to jump the wifes car so i ended up missing out
on the meeting. gonna try to make the next one for sure, though.
_______________________________________________
kc mailing list
kc@pm.org
http://mail.pm.org/mailman/listinfo/kc
_______________________________________________
kc mailing list
kc@pm.org
http://mail.pm.org/mailman/listinfo/kc