On May 13, rmck said: > while (<FHOREAD>) { > my $sport = (split(/\s/,$_))[8]; > my $sdport = (split(/\s/,$_))[10];
You have $sdport here, but you USE $dport. > next if $sport =~ /\D/; > next if $dport =~ /\D/; > if ($sport =~ /^(20|21|22|25|53|80|109|110|123|137|161|443)$/ || $dport =~ > /^(20|21|22|25|53|80|109|110|123|137|161|443)$/) { push @rest, $_ } > else { print FHODATA} > } > print RFHODATA @rest; I'd probably do: # set up valid values for $sport and $dport my %ok; @ok{20,21,22,25,53,80,109,110,123,137,161,443} = (); while (<FHOREAD>) { my ($sport, $dport) = (split)[8, 10]; next if $sport =~ /\D/ or $dport =~ /\D/; if (exists $ok{$sport} or exists $ok{$dport}) { push @rest, $_ } else { print FHODATA } } -- Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/ RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/ CPAN ID: PINYAN [Need a programmer? If you like my work, let me know.] <stu> what does y/// stand for? <tenderpuss> why, yansliterate of course. -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>