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.
|