Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: 'Permission Denied' error from File::Find

by Daruma (Curate)
on Feb 11, 2004 at 08:59 UTC ( #328194=note: print w/ replies, xml ) Need Help??


in reply to 'Permission Denied' error from File::Find

Geetings, witandhumor!

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 File::Find was finding the . file/directory first. The open is the part that seems to fail when it attempts to open the . file/directory.

I did a few file tests (-r and -f) to find only readable plain files. This happily skips over the . and .. files/directories.

Here's code that does not get the same file permission error:

#!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/; } }
Hope this helps!

-Daruma


Comment on Re: 'Permission Denied' error from File::Find
Select or Download Code
Re: Re: 'Permission Denied' error from File::Find
by witandhumor (Pilgrim) on Feb 12, 2004 at 03:18 UTC
    All:
    With all of the help given to me here(and some one-on-one tutoring) I was able to work out most of my issues! Thank you very much!!!!!!!!!!!

    Here is my most recent attempt..getting there

    #!c:\perl\bin\perl.exe -w use strict; use File::Find; #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 die "Guess what, it didn't work! $!\n"; while (my $line = <FILE>) { print "$text - $file\n" if $line =~ /$text/; } } close FILE; }

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://328194]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (10)
As of 2014-11-28 12:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (196 votes), past polls