in reply to Re: efficiency (Spelled it wrong :-)
in thread efficientcy
#!/usr/bin/perl -w
package Foo;
use CGI qw(:standard);
use strict; #always!
sub handler {
my $location = param("place");
my %subs = (
'home'=>\&home, # Just add a key and then a value then put your
'news'=>\&news, # stuff in a subroutine :) Yay!
);
my $output="Constant preamble";
if (!$location){
$output .= &home;
}
elsif (defined(my $action = $subs{$location})){
# Thanks Chromatic
$output .= $action->();
}
print header,$output;
return;
}
# Q&A -> Subroutines -> How to make subroutine accessible as foo.pl?foo
# Thanks again :-)
###############
# Subroutines #
###############
sub home{
return "this is home. I am John, hear me roar";
}
sub news{
return "this is news";
}
The effect of the single print statement is to collect your network write(s) into a single one or two if possible.
While for a cgi executed once in a while, the utility is limited, it is a dramatic benefit on UF where a given CGI will run literally 30 times a second, so every write to the tcp/ip stack matters, big time.
|
|---|