in reply to Re: Invalid top directory at C:/Perl/lib/File/Find.pm line 598
in thread Invalid top directory at C:/Perl/lib/File/Find.pm line 598

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

Replies are listed 'Best First'.
Re^3: Invalid top directory at C:/Perl/lib/File/Find.pm line 598
by JHermida (Initiate) on Sep 20, 2011 at 18:05 UTC

    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.

      Maybe it's easier to change

      #find(\&processTimestamp, @directories_to_search);#$inputDir);

      to:

      find(\&processTimestamp, ($inputDir) );

      and delete the whole @directories_to_search initialisation.

        Yes, it is a lot easier to do that but it results in the script entering an infinite loop.

        Has anyone tried running the script on their machine?