Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

chdir: failure

by PerlMe (Novice)
on Jul 17, 2007 at 05:19 UTC ( #626966=perlquestion: print w/ replies, xml ) Need Help??
PerlMe has asked for the wisdom of the Perl Monks concerning the following question:

I am trying to use chdir perl call
But the call always returns false. what are the probable reasons for this. The permission for the $CURRDIR directory are good.
$DATE = `date +%Y-%m-%d`; $CURRDIR = '/home/'.$USER.'/'.$DATE; #chdir ($CURRDIR) || die "couldn't change the directory";
Output:: couldn't change the directory

Comment on chdir: failure
Download Code
Replies are listed 'Best First'.
Re: chdir: failure
by Zaxo (Archbishop) on Jul 17, 2007 at 05:31 UTC

    If you die $! instead of using a custom message, you'll find out what the OS thinks is wrong.

    After Compline,
    Zaxo

Re: chdir: failure
by cdarke (Prior) on Jul 17, 2007 at 08:28 UTC
    For some strange reason you are calling the external program 'date' instead of using the Perl built-ins. Anyway, date(1) writes a line to STDOUT, terminated with a new-line "\n". Since you are using that in the directory name, Perl expects this new-line to be in the directory name also.
    chomp $DATE;
    Better yet, use localtime or POSIX::strftime
      Building on the above suggestions:
      $DATE = `date +%Y-%m-%d`; chomp $DATE; $CURRDIR = '/home/'.$USER.'/'.$DATE; chdir ($CURRDIR) || die "Couldn't change to $CURRDIR Reason: $!";
      You most likely will find that you are not pulling $USER into the directory line.
      -sh-3.1$ perl chdirtest.pl Couldn't change to /home//2007-07-17 Reason: No such file or directory + at chdirtest.pl line 4.
      Try assigning $USER, perhaps using get_login();
      $DATE = `date +%Y-%m-%d`; chomp $DATE; my $USER=getlogin(); $CURRDIR = '/home/'.$USER.'/'.$DATE; chdir ($CURRDIR) || die "Couldn't change to $CURRDIR Reason: $!";
      "The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it." - Terry Pratchett
        Thanks all,
        It works now. The problem was $date string terminated with a new-line "\n".
        I appreciate all the comments on '$user', '$!' and 'chomp'.
        Rami
Re: chdir: failure
by dsheroh (Parson) on Jul 17, 2007 at 05:35 UTC
    Have you checked the value of $CURRDIR to verify that it ends up being what you intend it to be and that the directory exists?

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (10)
As of 2015-07-29 10:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (263 votes), past polls