cholet 00/05/05 01:10:39
Modified: . Changes
Apache Apache.pm
Log:
doc update
Revision Changes Path
1.478 +3 -0 modperl/Changes
Index: Changes
===================================================================
RCS file: /home/cvs/modperl/Changes,v
retrieving revision 1.477
retrieving revision 1.478
diff -u -r1.477 -r1.478
--- Changes 2000/05/04 04:52:34 1.477
+++ Changes 2000/05/05 08:10:33 1.478
@@ -10,6 +10,9 @@
=item 1.23_01-dev
+document Apache::print's special behavior wrt references
+[Jeffrey W. Baker <[EMAIL PROTECTED]>]
+
fix core dump triggered by <Perl>do 'foo.pl'</Perl>,
thanks to Robert S. Thau for the spot
1.48 +15 -1 modperl/Apache/Apache.pm
Index: Apache.pm
===================================================================
RCS file: /home/cvs/modperl/Apache/Apache.pm,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- Apache.pm 2000/04/27 22:29:47 1.47
+++ Apache.pm 2000/05/05 08:10:39 1.48
@@ -909,7 +909,21 @@
=item $r->print( @list )
This method sends data to the client with C<$r-E<gt>write_client>, but first
-sets a timeout before sending with C<$r-E<gt>hard_timeout>.
+sets a timeout before sending with C<$r-E<gt>hard_timeout>. This method is
+called instead of CORE::print when you use print() in your mod_perl programs.
+
+This method treats scalar references specially. If an item in @list is a
+scalar reference, it will be dereferenced before printing. This is a
+performance optimization which prevents unneeded copying of large strings,
+and it is subtly different from Perl's standard print() behavior.
+
+Example:
+
+ $foo = \"bar"; print($foo);
+
+The result is "bar", not the "SCALAR(0xDEADBEEF)" you might have expected. If
+you really want the reference to be printed out, force it into a scalar
+context by using C<print(scalar($foo))>.
=item $r->send_fd( $filehandle )