On Feb 21, 9:46 am, [EMAIL PROTECTED] (Chas. Owens) wrote: > On Wed, Feb 20, 2008 at 11:03 PM, <[EMAIL PROTECTED]> wrote: > > snip> Oh - I wanted to eliminate all members of the array that had more than > > 10 instances of the same port. I was hoping that you could do > > something like "count keys where port = gi1/1/49". After knowing how > > many gi1/1/49 there were, you could remove them if they met your high > > water mark. > > > I ended out just looking for duplicates, which will achieve the basic > > task at hand.: > > snip > > The first thing you need to do is start using the strict* and > warning** pragmas. You may think they are an unnecessary pain now, > but trust us, they are invaluable. Try this: > > #!/usr/bin/perl > > use strict; > use warnings; > > use constant ROGUE_THRESHOLD => 3; > > open my $bad, ">", "probably_on_a_rogue_swtich.txt" > or die "could not open probably_on_a_rogue_swtich.txt: $!"; > > open my $good, ">", "good.txt" > or die "could not open good.txt: $!"; > > my %data_by_port; > while (<DATA>) { > my ($port) = (split)[3]; > push @{$data_by_port{$port}}, $_; > > } > > for my $port (keys %data_by_port) { > if ($port ne 'wireless' && @{$data_by_port{$port}} >= > ROGUE_THRESHOLD) { > for my $line (@{$data_by_port{$port}}) { > print $bad $line > } > } else { > for my $line (@{$data_by_port{$port}}) { > print $good $line > } > } > > } > > __DATA__ > 13 switch-1 111427f2ffff gi1/1/49 > 13 switch-1 111511614fff gi1/1/49 > 13 switch-1 11155e45ffff gi1/1/49 > 13 switch-1 1115fc4753ff gi1/1/49 > 111 switch-1 11196f977f72 gi1/1/49 > 111 switch-1 11196fff3728 gi1/1/49 > 111 switch-1 11196fe74f5f gi1/1/49 > 111 switch-1 111f56f1fcef gi1/1/1 > 111 switch-1 111f6123f789 gi1/1/2 > 111 switch-1 111f6124336f gi1/1/2 > 111 switch-1 111f61245f94 gi1/1/5 > 111 switch-1 111f6147eeff gi1/1/2 > 111 switch-1 111f61896fff gi1/1/2 > 111 switch-2 211f61896fff wireless > 111 switch-2 311f61896fff wireless > 111 switch-2 411f61896fff wireless > 111 switch-2 511f61896fff wireless > 111 switch-2 611f61896fff wireless > > *http://perldoc.perl.org/strict.html > **http://perldoc.perl.org/warnings.html > > -- > Chas. Owens > wonkden.net > The most important skill a programmer can have is the ability to read.
Thank you for your reply! I played around more with use::strict and use::warn. This alone is enough to keep me busy for a bit. The other snippet of code look exactly like what I want to do. It will take me a few days to digest it though. Thank you again! Jim -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/