$do_expand = $Is_VMS;
$Is_MacOS = $^O eq 'MacOS';
+my $Mac_FS;
+$Mac_FS = eval { require Mac::FileSpec::Unixish } if $Is_MacOS;
+
@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
# It may also edit @modparts if required.
$modfname = &mod2fname(\@modparts) if defined &mod2fname;
+ # Truncate the module name to 8.3 format for NetWare
+ if (($^O eq 'NetWare') && (length($modfname) > 8)) {
+ $modfname = substr($modfname, 0, 8);
+ }
+
my $modpname = join(($Is_MacOS ? ':' : '/'),@modparts);
print STDERR "DynaLoader::bootstrap for $module ",
my $dir;
if ($Is_MacOS) {
my $path = $_;
+ if ($Mac_FS && ! -d $path) {
+ $path = Mac::FileSpec::Unixish::nativize($path);
+ }
$path .= ":" unless /:$/;
$dir = "${path}auto:$modpname";
} else {
$dir = "$_/auto/$modpname";
}
+
next unless -d $dir; # skip over uninteresting directories
-
+
# check for common cases to avoid autoload of dl_findfile
my $try = $Is_MacOS ? "$dir:$modfname.$dl_dlext" : "$dir/$modfname.$dl_dlext";
- last if $file = ($do_expand) ? dl_expandspec($try) : (-f $try && $try);
-
+ last if $file = ($do_expand) ? dl_expandspec($try) : ((-f $try) && $try);
+
# no luck here, save dir for possible later dl_findfile search
push @dirs, $dir;
}
Perl-to-C 'glue'. There is, for example, no mechanism for calling a C
library function or supplying arguments. A C::DynaLib module
is available from CPAN sites which performs that function for some
-common system types.
+common system types. And since the year 2000, there's also Inline::C,
+a module that allows you to write Perl subroutines in C. Also available
+from your local CPAN site.
DynaLoader Interface Summary
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