in reply to Using File::DosGlob::glob in loop only works first time

Using glob in scalar context is a bad idea. Is there a reason you're doing this?

The quick fix is to do -f (File::DosGlob::glob qq{"$template_file"})[0] which puts the glob into list context.


Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart

Replies are listed 'Best First'.
Re^2: Using File::DosGlob::glob in loop only works first time
by ff (Hermit) on Feb 24, 2006 at 18:26 UTC
    No reason other than uninformed DWIMmery. :-)

    Thanks, your suggestion works perfectly in my real code. Changing the first line here (and leaving the second alone) to:

    unless ( -f ( File::DosGlob::glob qq{"$template_file"} )[0] ) +{
    produces:

    ftf2: 'file_a.txt' ftf2a: '"file_a.txt"' ftf2b: 'file_a.txt' is okay. ftf2: 'file_b.txt' ftf2a: '"file_b.txt"' ftf2b: 'file_b.txt' is okay. ftf3: 'file_b.txt' ftf3a: '"file_b.txt"' ftf2b: 'file_b.txt' is okay. ftf3: 'file_a.txt' ftf3a: '"file_a.txt"' 8251b: File check, cannot access 'file_a.txt', No such file or directo +ry
      I guess my more important question is: why are you using glob()? Are these fileglobs or filenames? Why are you using glob() on something that's not a glob? Is it for some evil windows reason?

      Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
      How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart