At Sun, 3 Aug 2003 10:28:13 -0400, Kee Hinckley wrote:
> At 10:37 PM -0700 8/2/03, <[EMAIL PROTECTED]> wrote:
> >- Embperlobject is great but, is it posible to have for embperl 2
> > the feature to call subs from other files without using embperl
> > object? maybe it is good to avoid the file search used in
> > embperlobject using the base file base.epl.
>
> Just call Execute with the import option.
importing is one method, some others:
"import" (for reference)
[- Execute({inputfile => 'other.epl', import => 1});
func(@args);
-]
other.epl:
[! sub func {
my @args = @_;
...
}
!]
"sub"
[- Execute('other.epl#func', @args);
# or the more verbose
Execute({inputfile => 'other.epl', sub => 'func', param => @args});
-]
other.epl:
[! sub func {
my @args = @param;
...
}
!]
"object"
[- $other = Execute({object => 'other.epl'});
$other->func(@args);
-]
other.epl:
[! sub func {
my $self = shift;
my @args = @_;
...
}
!]
"isa" (only works with EmbperlObject as shown)
[! Execute({isa => 'other.epl'}) !]
[- $req = shift;
$req->func(@args);
-]
other.epl:
[! sub func {
my $req = shift;
my @args = @_;
...
}
!]
"EMBPERL_OBJECT_HANDLER_CLASS" (only works with EmbperlObject)
[- $req = shift;
$req->func(@args);
-]
httpd.conf:
PerlSetEnv EMBPERL_OBJECT_HANDLER_CLASS Other
(drop "PerlSetEnv" for Embperl2)
Other.pm: (somewhere in Perl search path (@INC))
package Other;
sub func {
my $req = shift;
my @args = @_;
...
}
1;
All with various different tradeoffs in ease-of-use, memory usage,
run-time cost, etc of course.
In all these cases (except the last), you should be able to use a
[$ sub func $] in place of [! sub func {} !], if your function is
going to produce HTML.
There'd be some other variants more similar to usual Perl importing
too, like Exporter/@EXPORT_OK, or importing an AUTOLOAD function that
lazily imports real functions as needed.
--
- Gus
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]