作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了两个小时才找到这个错误。我可以解决它,但我不明白。
如果我有一个 perl 模块 ./lib/My/Foo.pm
看起来像这样:
package My::Foo;
sub import {print "importing\n"}
1;
import
子程序隐含:
$ PERL5LIB=./lib perl -MMy::Foo -e 'print "ok\n"'
importing
ok
import
子程序是
不是 叫。
$ cp lib/My/Foo.pm lib/Foo.pm
$ PERL5LIB=./lib perl -MFoo -e 'print "ok\n"'
ok
import
到
do_import
之类的其他内容,不调用子程序。所以我可以避免这种行为。但在我的实际用例中,我有一个
Import
类和抽象方法
import
,然后在子类中实现该方法。所以我不想要这个
import
use
时自动调用的方法荷兰国际集团的父类。
perlootut
和
perlobj
并没有看到任何提及这一点。
最佳答案
import()
是 Perl 中的特殊方法名。每当你 use
一个模块,Perl 会寻找一个名为 import()
的子程序。在该模块内,如果找到它,它将运行。
这最常用于 Exporter聪明。这意味着有一个名为 import()
的方法在您的模块中,您不想在加载模块时被调用是 非常糟糕的主意 .它会让你每时每刻都在与 Perl 对抗。
见 perldoc -f import有关更多信息的指针:
import LIST
There is no builtin
import
function. It is just an ordinary method (subroutine) defined (or inherited) by modules that wish to export names to another module. Theuse
function calls theimport
method for the package used. See also use, perlmod, and Exporter.
关于perl - perl 导入子例程有什么特别之处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096734/
我是一名优秀的程序员,十分优秀!