如何将包符号导出到Perl中的命名空间?
发布时间:2020-12-15 22:00:19 所属栏目:大数据 来源:网络整理
导读:我无法理解如何将包符号导出到命名空间.我几乎相同地遵循了文档,但似乎不知道任何导出的符号. mod.pm #!/usr/bin/perlpackage mod;use strict;use warnings;require Exporter;@ISA = qw(Exporter);@EXPORT=qw($a);our $a=(1);1; test.pl $cat test.pl#!/usr/
我无法理解如何将包符号导出到命名空间.我几乎相同地遵循了文档,但似乎不知道任何导出的符号.
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不被视为礼貌.通过 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |