One of the first things CGI.pm does on Win32 is binmode STDIN, STDOUT and STDERR. A side effect of binmode is that perl no longer does its transparent line-end adjustments.
Try this little demo:
use strict; use warnings; print "Just hit enter (before CGI)"; my $var = <STDIN>; print ":", ord $_, ":" for (split //, $var); print "\nChomping\n"; chomp $var; print ":", ord $_, ":" for (split //, $var); print "\n"; eval 'use CGI;'; print "Just hit enter (after CGI)"; $var = <STDIN>; print ":", ord $_, ":" for (split //, $var); print "\nChomping\n"; chomp $var; print ":", ord $_, ":" for (split //, $var); __END__ output: Just hit enter (before CGI) :10: Chomping Just hit enter (after CGI) :13::10: Chomping :13:
As you see, there is a carriage return left after using CGI that isn't there before CGI.
In reply to Re: Flawless Script problems?
by jsprat
in thread Flawless Script problems?
by sulfericacid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |