I'm wondering if the use of binmode() is really a good idea in any case.
It has no effect on Unix systems. My guess is that on Windows systems it allows
reading '\r' for '\n'. I guess there's a potential for problems in that case
for quoted strings or something. I guess I would be surprised if XML was
dependent on differing whitespace, but I'm no expert here.
If you send in the diffs to the XML-Parser maintainer, you might inquire as to
the need for the binmode(). It's possible it's there to get literal characters
in some case that's not in the tests, I don't know.
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, February 15, 2000 5:52 PM
> To: [EMAIL PROTECTED]
> Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: does binmode() work properly on VMS?
>
>
> Dan:
>
> Hi. Thanks again. Yes, that fixed it. the XML-Parser package
> on VMS now
> passes all tests. We should get the author to change the
> routine to read
> something like:
>
> binmode(FILE) unless ($^O eq 'VMS);
>
> Regards,
>
> David Hansen
> Warburg Dillon Read Chicago
>
> ______________________________ Reply Separator
> _________________________________
> Subject: Re: does binmode() work properly on VMS?
> Author: dan ([EMAIL PROTECTED]) at unix,mime
> Date: 15.02.00 16:43
>
>
> At 04:30 PM 2/15/00 -0600, [EMAIL PROTECTED] wrote:
> > Hi.
> >
> > I have an interesting problem... the XML parser tests
> are failing on
> > my Alpha 7.2 machine due to 'badly formed XML'. When I
> dig deeper, the
> > Parser.pm module's "parsefile()" function is opening
> an XML file, then
> > doing a "binmode()" on it. If I do a test of:
> >
> > $crud = scalar <FILE>;
> >
> > before the binmode() call, it returns one input line.
> However, if I do
> > this after the binmode() call, $crud holds the entire
> content of the
> > file -- "\n" is no longer recognised as a line terminator.
>
> What's probably going on is that your file isn't a Stream
> format file, but
> VFC or variable or something of the sort, so there really aren't an
> newlines in there--they're inserted automagically by RMS and/or the C
> runtime library. Binmode reopens the file so perl sees the
> raw bytes on
> disk, pretty much completely bypassing RMS. Handy if you want
> to mess with
> the length bytes or something, but generally it really sucks
> for other
> things. :)
>
> Try hacking the module so it doesn't binmode and see if that
> works better.
>
> Dan
>
> --------------------------------------"it's like
> this"-------------------
> Dan Sugalski even samurai
> [EMAIL PROTECTED] have teddy bears and even
> teddy bears get drunk
>
>
> This message contains confidential information and is intended only
> for the individual named. If you are not the named addressee you
> should not disseminate, distribute or copy this e-mail. Please
> notify the sender immediately by e-mail if you have received this
> e-mail by mistake and delete this e-mail from your system.
>
> E-mail transmission cannot be guaranteed to be secure or error-free
> as information could be intercepted, corrupted, lost, destroyed,
> arrive late or incomplete, or contain viruses. The sender therefore
> does not accept liability for any errors or omissions in the contents
> of this message which arise as a result of e-mail transmission. If
> verification is required please request a hard-copy version. This
> message is provided for informational purposes and should not be
> construed as a solicitation or offer to buy or sell any securities or
> related financial instruments.
>