Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: error on file open

by Anonymous Monk
on Nov 25, 2013 at 22:41 UTC ( #1064325=note: print w/replies, xml ) Need Help??

in reply to error on file open

I am very new to Perl, and don't know how to debug this error

There are checklists for that , I use them all the time (don't be fooled by the titles), Basic debugging checklist , brian's Guide to Solving Any Perl Problem, CGI Help Guide , Troubleshooting Perl CGI scripts ... More generic advice :) On debugging, verify everything, talk to teddybear ... checklists and more , perltrap, perltrap, Common Perl Pitfalls / perltrap

"permission denied" is about as clear as it can get: Q: can I have this cookie? A: No.

its because readdir does NOT return the complete path and you forgot to chdir

readdir is very low level, if you use Path::Tiny it can even do the die-ing for you, ex

$ perl -e " use Path::Tiny qw/ path /; path(qw/./)->openrw_raw; " Error open (+<:raw) on '.': Permission denied at -e line 1.

Then you can write functions that take arguments like this

#!/usr/bin/perl -- use strict; use warnings; use POSIX(); use Path::Tiny qw/ path /; Main( @ARGV ); exit( 0 ); sub Main { my $date = POSIX::strftime('%Y-%m-%d', localtime); my $dirp = path( 'f:/lawprod/law/prd9/work/COMDATAFILE/IN/' ); my $diri = $dirp->iterator( { qw/ recurse 0 / }); while( my $file = $diri->() ){ if( $file =~ /^\Q$threenodes\E/ ){ FrobnicateInnoculate( $file->openrw_raw ); } } } sub FrobnicateInnoculate { my( $filehandle ) = @_; ... close $filehandle; }

cpan Path::Tiny

perlintro#Simple matching, quotemeta, eq for string comparison not == (because perlnumber), http://p3rl.orrg/POSIX#strftime

chromatics free book Modern Perl a loose description of how experienced and effective Perl 5 programmers work....You can learn this too.
Learn Perl in about 2 hours 30 minutes
Beginning Perl (free) Chapter 6: Files and Data

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1064325]
[Discipulus]: AM will rulez!
[Corion]: :)

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (6)
As of 2018-05-22 08:37 GMT
Find Nodes?
    Voting Booth?