in reply to Re^13: print() on closed filehandle
in thread print() on closed filehandle

I tried to create a empty file before, and that didn't work. What does $^E do?

Replies are listed 'Best First'.
Re^15: print() on closed filehandle
by ysth (Canon) on Dec 15, 2004 at 10:33 UTC
    From perlvar:
    $EXTENDED_OS_ERROR
    $^E
    Error information specific to the current operating system. At the moment, this differs from $! under only VMS, OS/2, and Win32 (and for MacPerl). On all other platforms, $^E is always just the same as $!.

    Under Win32, $^E always returns the last error information reported by the Win32 call GetLastError() which describes the last error from within the Win32 API. Most Win32-specific code will report errors via $^E. ANSI C and Unix-like calls set errno and so most portable Perl code will report errors via $!.

Re^15: print() on closed filehandle
by Win (Novice) on Dec 15, 2004 at 10:57 UTC
    Sorry I'm wrong ..... I tried again to create the file in advance ..... and it works this time when I do that. So the take home point from this discussion is that when using ">" to create or use a file on a shared Network, within a MS environment, then the file will not be created in the event of it being absent. Perhaps this is something that the Perl developers need to look at.

      No, that's not true. I write perl on Windows all the time including using > to create new files and also including doing this on network shares. I was doing that just yesterday. Whatever it was that was wrong, it is something in the configuration on your end, perhaps in permissions.

      I doubt it is as simple as that; knowing what $^E is when the open fails may provide some insight into what factors make the problem manifest.