Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

can't open file for appending

by ytjPerl (Scribe)
on Aug 14, 2017 at 15:57 UTC ( #1197366=perlquestion: print w/replies, xml ) Need Help??

ytjPerl has asked for the wisdom of the Perl Monks concerning the following question:

Hi folks, I have code as follow to start up my server and output log to a file. I've tested and it was working. but Today when I tried to run it again, I got error 'Can't open 'D:/log_script/tuxedo_logs/startup.20170814xxxxxx.log' for appending: 'No such file or directory. I am really confused, I assume 'my $input = "D:/log_script/tuxedo_logs/startup" . DATETIME . ".log";' this code would generate this file for writing.
use strict; use warnings; use lib "D:/App/Perl/lib//"; use autodie; use Capture::Tiny 'capture_merged'; use POSIX; use constant DATETIME => strftime("%Y%m%d%H%M%S", localtime); my $input = "D:/log_script/tuxedo_logs/startup" . DATETIME . ".log"; open ( my $file, ">>", $input )or die "cannot open $!"; chdir "D:/server/setup"; print $file capture_merged { system('setenv.cmd&&tmboot -y') }; close($file); `

Replies are listed 'Best First'.
Re: can't open file for appending
by stevieb (Canon) on Aug 14, 2017 at 16:02 UTC

    The file would be created if it doesn't exist within the open() call as the code currently is written.

    This tells me that part of the directory path may be unavailable. Try to browse all the way to the tuxedo_logs directory.

Re: can't open file for appending
by Mr. Muskrat (Canon) on Aug 14, 2017 at 18:24 UTC

    Does the D:/log_script/tuxedo_logs directory still exist?

    Does the script run as you or another user? If it runs as a different user, does that user have permission to write to the D:/log_script/tuxedo_logs directory?

    As I was writing this up I noticed that the filename in the error you posted doesn't match the filename that the code as shown would generate... The error has it as 'D:/log_script/tuxedo_logs/startup.20170814xxxxxx.log' but the script as written would generate them like 'D:/log_script/tuxedo_logs/startup20170814xxxxxx.log' (notice the lack of a period after startup). I assume you typed the error message (and included a period that wasn't there) instead of copy/pasting it.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://1197366]
Front-paged by Corion
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2022-06-28 22:32 GMT
Find Nodes?
    Voting Booth?
    My most frequent journeys are powered by:

    Results (92 votes). Check out past polls.