Hi JHermida, what do you think, the following command in line 154 of your script does ? my @files = <"$inputDir"*>;Try to change it to my @files = glob "$inputDir*";if it's your intention to find all files beneath your top directory. And you can use Perl::Critic for quickly finding some strange behavior, it stated (for line 154, but there are some other suggestions): Glob written as <...> at line 154, column 14. See page 167 of PBP. Severity: 5
| [reply] [d/l] [select] |
It was my understanding that line 154 gets all files within the input directory. I got this from http://perl.about.com/od/filesystem/qt/perlglob.htm . Initially, I was writing this script on W7 and the line didn't include quotations, then I switched to an XP machine and had to include the quotations for it to work.
I changed the line as you suggested, but the program enters an infinite loop.
After some debugging, testing both lines:
my @files = <"$inputDir"*>
and
my @files = glob "$inputDir*";
only output the topic directory path, whereas
my @files = <*>
and
my @files = glob "*";
actually output the files within the present working directory.
| [reply] [d/l] [select] |
| [reply] [d/l] [select] |
At that point, only the directory inputted by the user is in @directories_to_search. For example, if 'perl fileDateTime.pl "C:\Program Files"' was executed, @directories_to_search only contains the path "C:\Program Files".
My initial thought of the find() function was that the second argument included all subdirectories within a parent directory, hence my code to get all files within the input directory, iterate through each, and add subdirectories to @directories_to_search. When I removed that block of code before, I realized that I could simply pass the input directory as the second argument to find(), but when I removed the code that deals with @directories_to_search, the program enters an infinite loop when a directory with no space is passed as the input directory (e.g., C:\drivers).
| [reply] [d/l] [select] |