Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^10: true from (-e "") on Windoze (" is an illegal filename character

by ikegami (Pope)
on Sep 19, 2012 at 23:05 UTC ( #994560=note: print w/ replies, xml ) Need Help??


in reply to Re^9: true from (-e "") on Windoze (" is an illegal filename character
in thread true from (-e "") on Windoze

No, I want to change it because the current behaviour is not reasonable. I need a function that checks if file exists, -e is suppose to be that function, but you're telling me it's not.


Comment on Re^10: true from (-e "") on Windoze (" is an illegal filename character
Download Code
Replies are listed 'Best First'.
Re^11: true from (-e "") on Windoze (" is an illegal filename character
by BrowserUk (Pope) on Sep 19, 2012 at 23:15 UTC
    . I need a function that checks if file exists

    Then don't ask it: "do any files exist".


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    RIP Neil Armstrong

    div class=
Re^11: true from (-e "") on Windoze (" is an illegal filename character
by syphilis (Canon) on Sep 20, 2012 at 01:58 UTC
    I need a function that checks if file exists

    Seems to me that (on Windows) we can be assured that the specified $file exists if any one of the following three conditions returns true:
    -T $file || -B $file defined -T $file defined -B $file
    I was also wondering about using -f instead of -e. Are there any files on Windows that will report false for -f ? (If so, then we can't use -f as a test for existence.)

    Someone really ought to file a bug report about this because the perldoc -f -X documentation does *not* match the behaviour wrt '-e'.
    That documentation implies that -e '""' will return true only if a file named "" exists.
    Either the behaviour ought to change to fit the documentation, or the documentation be amended to fit the behaviour.
    The documentation also implies that defined -f '""' will return false (but it doesn't).
    Here's what I ran as a check:
    #!perl -l use warnings; print "-f:"; -f '""' ? print "Returned True (unwanted behaviour)\n" : print "Returned False (wanted behaviour)\n"; print "defined -f:"; defined -f '""' ? print "Returned True (unwanted behaviour)\n" : print "Returned False (wanted behaviour)\n"; print "-T || -B:"; (-T '""' || -B '""') ? print "Returned True (unwanted behaviour)\n" : print "Returned False (wanted behaviour)\n"; print "defined -T:"; defined -T '""' ? print "Returned True (unwanted behaviour)\n" : print "Returned False (wanted behaviour)\n"; print "defined -B:"; defined -B '""' ? print "Returned True (unwanted behaviour)\n" : print "Returned False (wanted behaviour)\n";
    And here's the output I got:
    -f: Returned False (wanted behaviour) defined -f: Returned True (unwanted behaviour) -T || -B: Returned False (wanted behaviour) defined -T: Returned False (wanted behaviour) defined -B: Returned False (wanted behaviour)
    I don't mind filing a bug report about this, but I'll wait for comments about that first (in case I've overlooked something).

    Cheers,
    Rob

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://994560]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (14)
As of 2015-07-31 12:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (277 votes), past polls