I have a Perl script which takes a few arguments. It is executed like this:
exec myscript.pl --file=/path/to/input/file --logfile=/path/to/logfile/logfile.log
I have the following line in the script:
open LOGFILE, ">>$logFilePath" or die "Can't open '$logFilePath': $!\n";
Where $logfilePath is taken from the command line.
If there is a path, /path/to/logfile/, but no logfile.log, it just creates it (which is the desired action). However, it fails to start if there is no such path. How can I make the script create the path for the logfile, if it does not exist prior to running the script?
Suppose you have the path to the logfile (which may or may not include the filename:
logfile.log) in the variable$full_path. Then, you can create the respective directory tree if needed:Now,
$full_pathwill contain the full path to thelogfile.logfile. The directory tree in the path will have also been created.