gpt4 book ai didi

perl - 如果我要在 Perl 中使用纯 OO,是否需要 Exporter?

转载 作者:行者123 更新时间:2023-12-05 00:09:20 25 4
gpt4 key购买 nike

文档(Exporter 和 perlmodlib)说:

As a general rule, if the module is trying to be object oriented then export nothing.



但是 perlmodlib 也说:

Standard, bundled modules are all expected to behave in a well-defined manner with respect to namespace pollution because they use the Exporter module.



所以我想知道,如果你去OO并且什么都不导出,你真的需要Exporter吗?如果你不这样做,这是否意味着没有一个标准模块在这个意义上是严格的面向对象的,或者这是否意味着它们 EXPORT_OK有些事情是因为如果有人想从您的模块继承,您需要这样做? (这是真的吗?)或者您是否需要 Exporter 才能够 use MyModule; ... = new MyModule ?

最佳答案

你是对的。如果一切都被称为 OBJECT::sub() 或 $obj->sub(),你应该没问题。

对于继承,您将需要使用@ISA,为此,您不需要导出器。

此外,您给出的第二个引用是关于导出数据注入(inject)模块的。

如果您使用:use libname ();针对使用 Exporter 导出的库,您可以保证不导出任何内容。这就是它可以用来防止命名空间污染的方式。如果您通过函数名称显式导出,则这些是您获得的唯一函数。

关于perl - 如果我要在 Perl 中使用纯 OO,是否需要 Exporter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/507062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com