Perl   发布时间:2022-04-07  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何将包符号导出到Perl中的命名空间?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我无法理解如何将包符号导出到命名空间.我几乎相同地遵循了文档,但似乎不知道任何导出的符号. @H_368_2@mod.pm

#!/usr/bin/perl

package mod;

use Strict;
use warnings;

require Exporter;

@ISA = qw(Exporter);
@EXPORT=qw($a);


our $a=(1);

1;

test.pl

$cat test.pl
#!/usr/bin/perl

use mod;

print($a);

这是运行它的结果

$./test.pl
Global symbol "@ISA" requires explicit package name at mod.pm line 10.
Global symbol "@EXPORT" requires explicit package name at mod.pm line 11.
Compilation failed in require at ./test.pl line 3.
BEGIN failed--compilation aborted at ./test.pl line 3.

$perl -version
This is perl,v5.8.4 built for sun4-solaris-64int

解决方法

没有告诉你出口$a出现问题.告诉你,你有一个声明@ISA和@EXPORT的问题. @ISA和@EXPORT是包变量,严格来说,它们需要使用我们的关键字(或从其他模块导入 – 但不太可能与这两个)进行声明.它们在语义上与$a不同,但功能上不同.

保姆注意:@EXPORT不被视为礼貌.通过Exporter它将其符号转储在使用包中.如果您觉得出口有好处,那么机会就是 – 那么用户要求它是值得的.使用@EXPORT_OK代替.

大佬总结

以上是大佬教程为你收集整理的如何将包符号导出到Perl中的命名空间?全部内容,希望文章能够帮你解决如何将包符号导出到Perl中的命名空间?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。