Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl模块(.pm)如何调用相应的.so?_Perl - Fatal编程技术网

Perl模块(.pm)如何调用相应的.so?

Perl模块(.pm)如何调用相应的.so?,perl,Perl,我刚刚编译并运行了hello world Perl扩展,但我不知道其原理。pm如何调用.so?不需要-二进制代码在模块的命名空间中定义了一些变量和函数,它们可以像常规变量一样使用。.pm文件只需要确保在需要时加载.so。这是由模块完成的。通过继承DynaLoader,您可以确保在类上调用未知方法时加载.so文件。不需要-二进制代码在模块的命名空间中定义了一些变量和函数,它们可以像常规变量一样使用。.pm文件只需要确保在需要时加载.so。这是由模块完成的。通过从DynaLoader继承,您可以确保

我刚刚编译并运行了hello world Perl扩展,但我不知道其原理。pm如何调用.so?

不需要-二进制代码在模块的命名空间中定义了一些变量和函数,它们可以像常规变量一样使用。.pm文件只需要确保在需要时加载.so。这是由模块完成的。通过继承DynaLoader,您可以确保在类上调用未知方法时加载.so文件。

不需要-二进制代码在模块的命名空间中定义了一些变量和函数,它们可以像常规变量一样使用。.pm文件只需要确保在需要时加载.so。这是由模块完成的。通过从DynaLoader继承,您可以确保在类上调用未知方法时加载.so文件。

您没有提到.pm如何映射到.so。@Learning:这是由DynaLoader或其轻量级同类XSLLoader完成的;如果您愿意,您可以读取该文件的源代码,但其他人不必关心它的工作方式。@学习:对于模块Foo::Bar,文件是auto/Foo/Bar.so-规则与.pm文件几乎相同,但带有auto/directory前缀。查看DynaLoader中的引导函数,这通常是所有这些的入口点,perldoc对此过程进行了简要而清晰的描述。请记住,二进制文件并不总是.dll,所以在Windows上是.dll,在OSX上是.dylib,等等。查找用于动态加载的二进制库通常比较容易。您没有提到.pm如何映射到.so。@学习:这是由DynaLoader或其轻量级的同类XSLLoader完成的;如果您愿意,您可以读取该文件的源代码,但其他人不必关心它的工作方式。@学习:对于模块Foo::Bar,文件是auto/Foo/Bar.so-规则与.pm文件几乎相同,但带有auto/directory前缀。查看DynaLoader中的引导函数,这通常是所有这些的入口点,perldoc对此过程进行了简要而清晰的描述。请记住,二进制文件并不总是.dll,所以在Windows上是.dll,在OSX上是.dylib,等等。定位用于动态加载的二进制库通常很容易。