|
Prev: perl utility
Next: FAQ 1.9 How does Perl compare with other languages like Java, Python, REXX, Scheme, or Tcl?
From: John on 23 Apr 2008 08:35 Ben Bullock <benkasminbullock(a)gmail.com> wrote: >On Wed, 23 Apr 2008 14:31:18 +0300, John wrote: > >> Why is this happening? I've chomped and ~s'd the $line. I've also >> binmoded both file handles for good measure. > >I rewrote your code as follows and didn't get the error you mention on >either Ubuntu Linux or Windows or Cygwin: > >#!/usr/bin/perl >use warnings; >use strict; >open(MYHAN,"<", "testcrs.pl") or die $!; >open(MYHAN2,">", "receive.txt") or die $!; >binmode(MYHAN); >binmode(MYHAN2); >while (my $line=<MYHAN>) > { > chomp($line); > $line=~s/\x0d//g; # probably unnecessary > $line=~s/\x0a//g; > print MYHAN2 $line." testing R\x0dS\x0aT"; > } >close MYHAN; >close MYHAN2; > >Note that the "binmode" is essential here - without that what you >describe is the expected behaviour on Windows. The most likely cause of >the problem is that "open (MYHAN2" ... actually failed and you were >looking at an old version of the file before you'd used the "binmode" >statement, or perhaps you didn't scroll down far enough (since originally >it was appending to receive.txt rather than overwriting it). I copied you example and still get the problem. The receive.txt looks like below #!/usr/bin/perl testing R S Tuse warnings; testing R S Tuse strict; testing R S T testing R S Tprint "Content-Type: text/html; charset=iso-8859-1\n\n"; testing R S ..... I added some html lines: #!/usr/bin/perl use warnings; use strict; print "Content-Type: text/html; charset=iso-8859-1\n\n"; print '<html>'; print '<head>'; print '<title>Hello</title>'; print '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">'; print '</head>'; open(MYHAN,"<", "testcrs.pl") or die $!; open(MYHAN2,">", "receive.txt") or die $!; binmode(MYHAN); binmode(MYHAN2); while (my $line=<MYHAN>) { chomp($line); $line=~s/\x0d//g; # probably unnecessary $line=~s/\x0a//g; print MYHAN2 $line." testing R\x0dS\x0aT"; } close MYHAN; close MYHAN2; print '</html>';
From: Ben Bullock on 23 Apr 2008 08:50 On Wed, 23 Apr 2008 15:35:47 +0300, John wrote: > I copied you example and still get the problem. It's probably an error elsewhere, not in Perl.
From: John on 23 Apr 2008 10:44 Ben Bullock <benkasminbullock(a)gmail.com> wrote: >On Wed, 23 Apr 2008 15:35:47 +0300, John wrote: > >> I copied you example and still get the problem. > >It's probably an error elsewhere, not in Perl. You are right! My bad. Wasted hours on this. The problem was that when I downloaded the file the ftp client program was set to "Auto" and it added the extra CR's. When I set it to "Binary" the files came down OK. Thanks for the help!
From: J. Gleixner on 24 Apr 2008 12:44 John wrote: > I copied you example and still get the problem. The receive.txt looks like below [...] > I added some html lines: Yeah, that's usually the first step in debugging any program. 1. Always add HTML. That'll fix 99% of your coding errors. :-)
From: Chris Mattern on 24 Apr 2008 16:29
On 2008-04-24, J. Gleixner <glex_no-spam(a)qwest-spam-no.invalid> wrote: > John wrote: > >> I copied you example and still get the problem. The receive.txt looks like below > [...] >> I added some html lines: > > Yeah, that's usually the first step in debugging any program. > > 1. Always add HTML. That'll fix 99% of your coding errors. > >:-) That's ridiculous. You have to add XML. XML solves *everything*. -- Christopher Mattern NOTICE Thank you for noticing this new notice Your noticing it has been noted And will be reported to the authorities |