NAME
Apache::EmbeddedPerl::Lite - light weight embedded perl parser
SYNOPSIS
PerlModule Apache::EmbeddedPerl::Lite
SetHandler perl-script
PerlHandler Apache::EmbeddedPerl::Lite
PerlSetVar ContentType text/html
or
use Apache::EmbeddedPerl::Lite qw(
embedded
};
$response = embedded($class,$r,$filename,@args)
DESCRIPTION
This modules is a light weight perl parser designed to be used in
conjunction wit mod_perl and Apache 1 or Apache 2. It may be used as a
handler for files containing embedded perl or it may be called as a
subroutine to conditionally parse files of your choosing.
Perl code may be embedded in a file parsed by this module as described
below. Each section of perl code is collected and eval'd as a subroutine
that is passed the two arguments ($classnam,$r) in its input array @_;
Embedded perl should have the following format:
On a line by itself:
{optional whitespace}
The beginning and terminating brackets may optionally be followed by a
white space and comments, which will be ignored.
i.e.
* $http_response = handler($classname,$r);
The function "handler" has the prototype:
handler ($$) : method {
which receives the arguments $class, $r from Apache mod_perl.
input: class name, (a scalar, not a ref)
request handle
return: Apache response code or undef
handler is not exported.
Expected Codes:
0 OK
404 File Not Found
500 Server Error
404 could not find, open, etc... file
500 missing closing embedded perl bracket
embedded perl has an error
When a 500 error is returned, a warning will be issued to STDERR
providing details about the error.
A ContentType header will not be sent unless the type is specified as
follows:
PerlSetVar ContentType text/html
mod_perl configuration is as follows:
PerlModule Apache::EmbeddedPerl::Lite
SetHandler perl-script
PerlHandler Apache::EmbeddedPerl::Lite
PerlSetVar ContentType text/html
* $http_response = embedded($classname,$r,$file,@args);
The function "embedded" is similar to "handler" above except that it
does not send any headers. Headers are the responsibility of the
application "handler", or the embedded code.
@args are optional arguments that may be passed from your handler to
embedded.
input: class name, (a scalar, not a ref)
request handle,
file name
@args [optional] appication specific
return: Apache response code or undef
... at startup or .httaccess ...
use Apache::EmbeddedPerl::Lite qw(embedded);
... in the application handler ...
if ($r->filename =~ /\.ebhtml$/) {
... set content type, etc...
$response = embedded(__PACKAGE__,$r,$r->filename);
} else {
$response = embedded(__PACKAGE__,$r,$someotherfile);
}
return $response if $response; # contains error
... do something else
PREREQUISITES
Apache
or
Apache2
Apache2::RequestRec
Apache2::RequestUtil;
Apache2::RequestIO;
EXPORT_OK
embedded
AUTHOR
Michael Robinton, michael@bizsystems.com
COPYRIGHT
Copyright 2013-2014, Michael Robinton & BizSystems This program is free
software; you can redistribute it and/or modify it under the same terms
of the Apache Software License, a copy of which is included in this
distribution.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.