在Perl中存储通用方法的位置

在Perl中存储通用方法的位置,perl,oop,methods,Perl,Oop,Methods,因此,我知道特殊的通用类将被视为创建所有其他对象的基类。因此,如果在Perl遍历继承层次结构之后没有找到特定的方法,它将在UNIVERSAL类中查找该方法是否可以在那里找到。但是,创建发行版时,不会创建UNIVERSAL.pm包。此外,通用方法“确实”和“可以”在没有通用.pm的情况下已经存在。。。因此,我不确定我是否应该像这样将通用方法写入随机包: sub UNIVERSAL::nicemethod{ launch_teh_missles(); } 或者我应该创建一个单独的通用包和.

因此,我知道特殊的通用类将被视为创建所有其他对象的基类。因此,如果在Perl遍历继承层次结构之后没有找到特定的方法,它将在UNIVERSAL类中查找该方法是否可以在那里找到。但是,创建发行版时,不会创建UNIVERSAL.pm包。此外,通用方法“确实”和“可以”在没有通用.pm的情况下已经存在。。。因此,我不确定我是否应该像这样将通用方法写入随机包:

sub UNIVERSAL::nicemethod{
    launch_teh_missles();
}

或者我应该创建一个单独的通用包和.pm文件吗?什么是最佳实践?

您可以向UNIVERSAL添加新方法,方法与向任何其他软件包添加新方法相同:

package
   UNIVERSAL;  # Line break to fool CPAN indexer

sub nice_method {
   ...
}

你不想让CPAN相信你的发行版有一个名为UNIVERSAL的模块,所以你想在
package
指令中加一个换行符。这是否也意味着为这些方法创建一个UNIVERSAL.pm文件是不明智的?