in reply to Re: Windows NT CGI File Upload Problem
in thread Windows NT CGI File Upload Problem

However note that under VMS binmode is not a no-op and is sometimes very definitely not desired. Sorry, I don't know details beyond the fact that it has to do with VMS having a much more complex filestructure than Unix, I was just told that once by the maintainer of the VMS port.
  • Comment on RE (tilly) 2: Windows NT CGI File Upload Problem

Replies are listed 'Best First'.
VMS binmode (RE: Windows NT CGI File Upload Problem)
by tye (Sage) on Sep 14, 2000 at 20:08 UTC

    Actually, under VMS (last time a checked, which was quite a while ago), simply writing files from C (and thus from Perl) generates strange files. VMS files are handled by RMS and the "R" stands for "records" so VMS files are not all streams. Until C got ported to VMS, VMS didn't even have support for streamed files (that I could find).

    I could see binmode() creating some kind of raw stream instead of the default "stream, LF-terminated records" format that C creates by default (though I don't think it used to). This might cause normal VMS stuff to puke because "read next record" gives you something huge. But that is already a problem for binary data in a "stream, LF-terminated records" file. Which makes me think that bindmode() should (once again?) be a no-op under VMS. But this is all wild speculation (which often prompts someone who knows something to reply; so I won't delete it).

    But you can probably recover the damage from the use of binmode() under VMS using its standard file conversion utilities. The damage from no binmode() under other OSes usually isn't reversible.

            - tye (but my friends call me "Tye")
      Know or can learn you mean? :-)

      Your description rings a bell, and in fact the behaviour has been fixed. So on 5.6 (and presumably forward) on VMS binmode is now a no-op. Earlier Perls can encounter a problem.