perl -MModPerl::MethodLookup -le '\ package Apache::RequestRec; sub new { bless {}, shift }; \ package My::Request; @ISA = qw(Apache::RequestRec); \ package main; my $obj = My::Request->new(); \ my($hint, @modules) = ModPerl::MethodLookup::lookup_method("print", $obj); \ print $hint' To use method 'print' add: use Apache::RequestIO ();
So EazyLife.pm, including fixes for your previous comments, looks like:
package ModPerl::EazyLife;
use ModPerl::MethodLookup (); use Carp;
my @avail_modules = ModPerl::MethodLookup::avail_modules(); push @avail_modules, 'Apache'; # XXX: may go away my $skip = qr|(::)?DESTROY$|; for my $module (@avail_modules) { *{"$module\::AUTOLOAD"} = sub { my($hint, @modules) = ModPerl::MethodLookup::lookup_method($AUTOLOAD, @_);
if (@modules) { eval "require $_" for @modules; goto &$AUTOLOAD; } else { return if $AUTOLOAD =~ /$skip/; croak $hint || "Can't find $AUTOLOAD"; } }; }
1;
You need to update your cvs and rebuild (because of the changes in the autogenerated MethodLookup.pm module).
__________________________________________________________________ Stas Bekman JAm_pH ------> Just Another mod_perl Hacker http://stason.org/ mod_perl Guide ---> http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]