Practical mod_perl / HTML Book /



previous page: 13.8. time( ) System Call Versus $r->request_time
  
page up: HTML Version of the book
  
next page: 13.10. Caching and Pre-Caching

13.9. Printing Unmodified Files


To send a complete file from disk, without applying any modifications first, instead of:

my $filename = "/tmp/foo";
my $fh = Apache::gensym( );  # generate a new filehandle
open $fh, $filename or return NOT_FOUND;
print <$fh>;
close $fh;

it's better to write:

my $filename = "/tmp/foo";
my $fh = Apache::gensym( );  # generate a new filehandle
open $fh, $filename or return NOT_FOUND;
$r->send_fd($fh);
close $fh;

The former implementation uses more memory and it's slower, because it creates a temporary variable to read the data in and then print it out. The latter uses optimized C code to read the file and send it to the client.

 

Continue to:

  • prev: 13.8. time( ) System Call Versus $r->request_time
  • Table of Contents
  • next: 13.10. Caching and Pre-Caching







TOP
previous page: 13.8. time( ) System Call Versus $r-&gt;request_time
  
page up: HTML Version of the book
  
next page: 13.10. Caching and Pre-Caching


Menu

  • HTML Book
  • PDF Book
  • Download Code
  • Table of Contents
  • Errata
  • mod_perl2 User's Guide
  • Sitemap

Search


Add to Google




Creative Commons License


Written by
Eric Cholet (Logilune) and
Stas Bekman (StasoSphere & Free Books).


[ Privacy Policy | Terms of Use | About Us | Search ]

© 2007 StasoSphere.com