```{index} single: XSLoader ``` # XSLoader Start the native part of a module ## VERSION Version 0.32, the XSLoader of perl 5.44, unchanged. ## SYNOPSIS ```perl package YourPackage; require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); ``` ## DESCRIPTION `XSLoader::load` starts the compiled part of a module. The module's `.pm` calls it, usually right after setting `$VERSION`; without arguments it uses the calling package. pperl loads no shared objects. Where pperl implements a module natively, the compiled part is in the pperl binary, and `XSLoader::load` starts it the way perl5 starts an extension linked statically into its binary. That is how the native modules of the module reference load, such as Socket, POSIX, List::Util and Storable: their upstream `.pm` runs unchanged and calls `XSLoader::load`. For a module pperl has no native part for, `XSLoader::load` dies, as it does on a perl5 built without dynamic loading: ```text Can't load module Some::Module, dynamic loading not available in this perl. ``` A module that calls `XSLoader::load` inside `eval` and falls back to a pure-Perl implementation when the call fails therefore runs its pure-Perl part under pperl.