in reply to Re: Permission denied when opening files in Windows
in thread Permission denied when opening files in Windows

I agree with you, but would suggest it is better not to have "\n" at the end of the die message. You get more information from $! die without it.

Update: Thanks tye: more information from die, not from $! as originally written.

Je suis Charlie.

Replies are listed 'Best First'.
Re^3: Permission denied when opening files in Windows ($! $^E)
by tye (Sage) on Mar 28, 2015 at 04:44 UTC
    it is better not to have "\n" at the end of the die message. You get more information from $! without it.

    The extra information has nothing to do with $! (see die for details).

    BTW, since you (the OP) are using Windows, you may want to include $^E in addition to $! as $^E will sometimes have a more to-the-point explanation, especially in "permission denied" scenarios.

    - tye        

Re^3: Permission denied when opening files in Windows
by dasgar (Priest) on Mar 29, 2015 at 17:13 UTC

    I'm not saying that you're wrong about that, but can you point me to where this behavior change of $! is documented?

    I have never tried testing to see if die "$!" provides more information than die "$!\n". The reason that I have been including "\n" is that I'm primarily working on Windows and I have seen instances where not using "\n", the next command prompt is being displayed on the last output line of the die statement. That's not necessarily a major issue, but I do find that to be a bit annoying. By adding "\n", this puts the next command prompt on a new line.

    After seeing your post, I've looked at the perldocs for open, perliol, perlopentut, and perlvar and I was not able to find anything that indicated that "\n" would affect the contents of $!. If what you are saying is true, then it might a good idea if the perldoc for open could be updated since there are a few examples of open or die structure that has "$!\n" in the input to the die statement.

    On the other hand, I did find information in perlvar that corroborates what tye said about $^E potentially providing more detailed information on some operating systems (including Windows).

      I have never tried testing to see if die "$!" provides more information than die "$!\n".

      It does:

      $ perl -e 'open FOO, "<", "dontexist" or die "$!\n"' No such file or directory $ perl -e 'open FOO, "<", "dontexist" or die "$!"' No such file or directory at -e line 1.

      It can also provide information on the currently open file, see e.g. second example here.

      I was not able to find anything that indicated that "\n" would affect the contents of $!.

      AFAIK it doesn't. Perhaps Laurent_R meant to say "You get more information from die without it."

      Sorry, I typed this a bit too fast. As pointed out by tye and anonymous monk, the difference is associated with die rather that with $!
      Je suis Charlie.