NAME
autodynaload - Dynamically locate shared objects on your system
SYNOPSIS
use autodynaload sub {
my ($this, $f) = @_ ;
if ($f eq 'some_object'){
return "/path/to/some_object.so" ;
}
return undef ;
} ;
DESCRIPTION
autodynaload
allows you to specify the location of a shared object at runtime. It does so by overriding the proper DynaLoader methods and allowing for handlers to be registered.
The subroutine argument can be either a coderef or scalar value, in which case it will be used as a symbolic reference. Note: no error will be generated if the symbolic reference does not resolve. This allows a handler to "kick in" at later time when the subroutine in question is actually defined.
The subroutine must return the absolute path to the shared object. A return value of undef will pass control to the next handler (either a previous autodynaload
handler or DynaLoader's default mechanism).
CONSTRUCTOR
- new ( HANDLER )
-
Creates a new
autodynaload
object that will call HANDLER when invoked. For it to be of any use you must place the object in the proper array (in this case the @autodynaload::INC array) using the insert method.
METHODS
Note: autodynaload
extends autorequire. See autorequire for methods not documented here.
- $ar->insert( POS )
-
See "insert" in autorequire. In this case the array will be @autodynaload::INC.
- $ar->delete ()
-
See "delete" in autorequire. In this case the array will be @autodynaload::INC.
- autodynaload->is_loaded( FILENAME )
-
Convenience method that returns the absolute path of FILENAME if the shared object FILENAME is found in the @DynaLoader::dl_shared_objects array. Returns undef is the shared object is not loaded.
- autodynaload->is_installed( FILENAME )
-
Convenience method that returns the absolute path of FILENAME if the shared object FILENAME is installed on the system. It does this using the ExtUtils::Installed module. Please that this method is somewhat slow.
SEE ALSO
AUTHOR
Patrick LeBoutillier, <patl@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2005 by Patrick LeBoutillier
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.