Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
PerlMonks  

Re: overloading the print function (or alternatives)

by davorg (Chancellor)
on Dec 04, 2000 at 14:11 UTC ( [id://44774]=note: print w/replies, xml ) Need Help??


in reply to overloading the print function (or alternatives)

The former will actually cause problems with some browsers, because printing to STDOUT prints "hello world" before the content-type header.

I'd like to know some more about this problem. Can you show me some code that breaks on certain browsers?

As far as I can see, if you have code that does:

print "Content-type: text/html\n\n"; # and then later in the script... print "<h1>Some title</h1>\n";

Then the second print statement should always display its output after the first. If that's not true, then I'd call that a bug.

There is a similar problem, where you have code like this:

print "Content-type: text/html\n\n"; print "<h1>Header</h1>\n"; # some code that generates an runtime error

In this case, because STDOUT is buffered by default and STDERR isn't, it is possible that the errors will be sent to the client before the header, causing an "invalid headers" error. The solution to this is to set $| to a true value to unbuffer STDOUT (or course, you'll still need to fix the bug that causes the error!).

--
<http://www.dave.org.uk>

"Perl makes the fun jobs fun
and the boring jobs bearable" - me

Replies are listed 'Best First'.
Re: Re: overloading the print function (or alternatives)
by nate (Monk) on Dec 04, 2000 at 14:34 UTC
    This is also in response to chipmunk's comment.

    E* creates the entire page before it prints any output to STDOUT -- cookies are set in the header (along with the content-type), and developers need to be able to manipulate cookies on the current page. This is, of course, what causes the "print" bug -- which I'm hoping to curb.

    thanks,

    --nate

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://44774]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others admiring the Monastery: (4)
As of 2025-07-18 01:36 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.