#!/usr/bin/perl -w use strict; my @checklist; my @testfile; my $rulenames; open( FILE, "wordlist" ) or die "Can't read wordlist: $!\n"; my $maxLen = 0; while( ) { next if $_ =~ /^ *$/ || $_ =~ /^#/; $maxLen = length($_) if $maxLen < length($_); push @checklist, $_; } chomp @checklist; close(FILE); my $bufSize= 8*1024; $bufSize= 2*$maxLen if $bufSize < 2*$maxLen; my $GrepList = join '|', map quotemeta $_, @checklist; $GrepList = qr/($GrepList)/i; @ARGV = grep -f $_, <*>; $/= \$bufSize; # Have <> read $bufSize bytes if( @ARGV ) { my $prev= ""; while( <> ) { $_ =~ s/\n//g; if( ($prev.$_) =~ /$GrepList/ ) { print "$ARGV : $1\n"; close( ARGV ); $prev= ""; } elsif( eof ) { $prev= ""; } else { $prev = substr( $_, -$maxLen ); } } }