<pre>
#!/usr/bin/perluse File::Find;
$addr_file = 'addr.txt';
my %h;
open(F, "< $addr_file");
map{ chomp; $h{$_}={}; } <F>;
$cpath = `pwd`;
chomp $cpath;
find(\&wanted, "./");
map{
my $h = $h{$_};
my $addr = $_;
map{
print "$a\t$_\n";
} sort {$a cmp $b} keys %$h;
} sort{ $a cmp $b} keys %h;
sub wanted{
if (-f $_){
my $n = $File::Find::name;
if ($n =~ s/^\.//){
$n = $cpath.$n;
}
open(F, "< $_");
local $/=undef;
my $s = <F>;
map{
if (index($s, $_) >=0 ){
${$_}{$n}++;
}
} keys %h;
}
}
<pre>
Это будет работать в родительском каталоге и просматривать все файлы в этом каталоге(с поиском).
Если файло сжатые, то надо разжимать (можно на лету) но для начала надо изучить основные понятия языка.