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.
> 

Reply via email to