我有两个Perl类。让我们调用一个Client,另一个Server。Server是一个定义良好的Moose类。Client不是一个Moose类,它只是一个非常薄的外观,可以通过网络连接到Server对象。
此外,Client是我们项目的内部,不应该被其他任何人使用。现在在我们公司,其他的开发人员并不总是值得信任的。为了帮助他们知道他们做错了什么,我们的Client类有一个自定义导入语句:
package Client;
sub import {
my ($self, $promise) = @_;
die "this is not a public API"
unless $promise eq "Only CertainTeam should be using this API";
}
sub do_something { ... }因此,为了让某人使用Client,他们必须键入:
use Client q{Only CertainTeam should be using this API};我不确定这是否是最好的方法,但它很好地阻止了其他团队使用Client。现在我想让Client成为一个驼鹿类。但是,当我添加use Moose;时,perl非常不高兴,因为我现在正在覆盖Moose的导入。我得到以下错误:
Prototype mismatch: sub Client::with: none vs (&;$) at Client.pm line 14有人对我如何坚持Client的导入行为,同时使它成为一个Moose类有任何想法吗?
https://stackoverflow.com/questions/20692173
复制相似问题