http://qs321.pair.com?node_id=371917


in reply to Re: -e " " returns true
in thread -e " " returns true

ActivePerl Build 809
v5.8.3 built for MSWin32-x86-multi-thread
#!/usr/bin/perl use strict; use warnings; my @files = (' ', ' . . ', ' .. ', ' ', ' . '); foreach (@files) { print "[$_] - ", -e $_ ? "yes\n" : "no\n"; } __END__ [ ] - yes [ . . ] - yes [ .. ] - yes [ ] - yes [ . ] - yes

Replies are listed 'Best First'.
Re^3: -e " " returns true
by PerlingTheUK (Hermit) on Jul 05, 2004 at 16:12 UTC
    This is one of the times I really wish I was still on Linux.
    Thanks for trying as well and all those fast replies.

    Hans
      Hey PerlingTheUK,

      Here's a quick fix for you until you get around this problem. It produces correct results for those dotty filenames both under Windows XP (5.6.1 active perl) and Linux (RedHat 9, 5.6.1 as well).
      my $f = ". ."; my $result = minuse ($f); print "[$result]\n"; sub minuse { -f $_[0] || &minusd} sub minusd {local *D; opendir (D, shift) && (close (D) || 1)}
        Thank you very much, that works fine. I have installed Build 510 in the meantime and tested -e using that release. All dotty files exist in that build as well, but anyway, this fix is fine for now.

        Hans