use vars qw($VERSION *AUTOLOAD);
-$VERSION = 1.04; # avoid typo warning
+$VERSION = '1.05'; # avoid typo warning
require AutoLoader;
*AUTOLOAD = \&AutoLoader::AUTOLOAD;
my $Mac_FS;
$Mac_FS = eval { require Mac::FileSpec::Unixish } if $Is_MacOS;
+@dl_shared_objects = (); # shared objects for symbols we have
@dl_require_symbols = (); # names of symbols we need
@dl_resolve_using = (); # names of files to link with
@dl_library_path = (); # path to look for files
" dynamic loading or has the $module module statically linked into it.)\n")
unless defined(&dl_load_file);
+EOT
+
+print OUT <<'EOT' if $^O eq 'os2';
+ # Can dynaload, but cannot dynaload Perl modules...
+ die 'Dynaloaded Perl modules are not available in this build of Perl' if $OS2::is_static;
+
+EOT
+
+print OUT <<'EOT';
my @modparts = split(/::/,$module);
my $modfname = $modparts[-1];
my $xs = dl_install_xsub("${module}::bootstrap", $boot_symbol_ref, $file);
# See comment block above
+
+ push(@dl_shared_objects, $file); # record files loaded
+
&$xs(@args);
}
DynaLoader - Dynamically load C libraries into Perl code
-dl_error(), dl_findfile(), dl_expandspec(), dl_load_file(), dl_unload_file(), dl_find_symbol(), dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(), dl_load_flags(), bootstrap() - routines used by DynaLoader modules
-
=head1 SYNOPSIS
package YourPackage;
$dl_debug
@dl_librefs
@dl_modules
+ @dl_shared_objects
Implemented in:
bootstrap($modulename) Perl
@filepaths = dl_findfile(@names) Perl
An array of module (package) names that have been bootstrap'ed.
+=item @dl_shared_objects
+
+An array of file names for the shared objects that were loaded.
+
=item dl_error()
Syntax:
Linux, and is a common choice when providing a "wrapper" on other
mechanisms as is done in the OS/2 port.)
-=item dl_loadflags()
+=item dl_load_flags()
Syntax:
- $flags = dl_loadflags $modulename;
+ $flags = dl_load_flags $modulename;
Designed to be a method call, and to be overridden by a derived class
(i.e. a class which has DynaLoader in its @ISA). The definition in