我正在尝试在perl中创建自己的模块,该模块提供从数据库中进行数据分析的功能。 我在EDL :: Functions中有几个函数,例如。 EDL ::功能::平均。
package EDL::Functions;
use warnings;
use strict;
package EDL::Functions::Average;
use parent "EDL::Functions";
sub new{...}
sub execute {...}
1)我必须添加什么use EDL::Functions;
自动导入EDL::Functions
中的所有模块?目前我必须导入所有子模块(在EDL::Functions
中)才能使其正常工作:
BEGIN {
our $VERSION = 5.20;
use EDL::Functions::Average;
use EDL::Functions::GetAllValues;
use EDL::Functions::GetValueStart;
use EDL::Functions::GetValueEnd;
use EDL::Functions::Min;
use EDL::Functions::Max;
use EDL::Functions::Median;
}
2)我想确保如果其他人构建自己的功能模块,如果它没有函数new
和execute
,则编译将失败。我怎样才能做到这一点?
感谢您的帮助!
答案 0 :(得分:0)
应该有效
perl -I ./ -MEDL::Functions -e 'EDL::Functions::Average->new();'
返回"我是新的"。
cat EDL / Functions.pm
package EDL::Functions;
use warnings;
use strict;
package EDL::Functions::Average;
use parent "EDL::Functions";
sub new{ print "I'm new"; }
sub execute { print "Executing something";}
1;
但我喜欢不同的结构,而不是在一个pm文件中声明几个包。它可以为其他开发人员节省时间并遵循惯例,因此EDL :: Functions :: Average应该是EDL / Functions / Average.pm