my @banned = qw( at be for and to of in the as it are is am on an you me a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 10 ); for (1 .. 20000) { open local(*IN),"/var/www/data/$_.txt" or next; my $url = ; my %count; while () { $count{lc $_}++ for split /\W+/; } close IN or die $!; delete @count{@banned}; print # all the output stuff }