note
Daruma
Geetings, [witandhumor]!
<br><br>
After running your code on my Win32 machine, I received the same (or a similar) error about permissions. A few well placed print statements and switches flipped later, I found that <code>File::Find</code> was finding the <code>.</code> file/directory first. The <code>open</code> is the part that seems to fail when it attempts to open the <code>.</code> file/directory.
<br><br>
I did a few file tests (<code>-r</code> and <code>-f</code>) to find only readable plain files. This happily skips over the <code>.</code> and <code>..</code> files/directories.
<br><br>
Here's code that does not get the same file permission error:
<code>
#!c:\perl\bin\perl.exe -w
use strict;
use File::Find;
use Carp;
#variables
my ($directory,$file,$text);
print "Enter search text: ";
$text = <STDIN>;
chomp $text;
$directory = 'c:\my_directory';
find (\&search,$directory);
sub search {
my $file = $File::Find::name;
if (-r $file && -f $file) {
open (FILE, "$file") or carp "Guess what, it didn't work!\n$!";
my $line = <FILE>;
close FILE;
print "$text - $file"
if $line =~ /$text/;
}
}
</code>
Hope this helps!<br><br>
-[Daruma]
328125
328125