Perl 你如何命名一个类/包/模块

Perl 你如何命名一个类/包/模块,perl,naming-conventions,moose,Perl,Naming Conventions,Moose,如果一个包的唯一目的是扩展另一个模块,这样您就可以对其应用角色,您会如何命名该包?我需要一个扩展(子类)的包,这样我就可以创建应用于它的角色和特征,但我不知道该如何命名这个包(类)。有什么建议吗?由于驼鹿的特殊角色,我想以驼鹿的名字命名。模板::上下文::Moosified。或者模板::上下文::带鹿角 但是有一个中间子类,这样你就可以把角色粘在上面,这很奇怪。您可以跳过这个中间人,直接声明组合类 package Template::Context::ForBreakfast; use Moo

如果一个包的唯一目的是扩展另一个模块,这样您就可以对其应用角色,您会如何命名该包?我需要一个扩展(子类)的包,这样我就可以创建应用于它的角色和特征,但我不知道该如何命名这个包(类)。有什么建议吗?

由于驼鹿的特殊角色,我想以驼鹿的名字命名。模板::上下文::Moosified。或者模板::上下文::带鹿角

但是有一个中间子类,这样你就可以把角色粘在上面,这很奇怪。您可以跳过这个中间人,直接声明组合类

package Template::Context::ForBreakfast;

use Moose;
extends "Template::Context";
with "Bacon", "Eggs", "Toast";
package R; 
use Moose::Role; 
sub f { say 42 } 

package main; 
use URI;
R->meta->apply( Moose::Meta::Class->initialize( 'URI' ) ); 
URI->new->f

类名应该不在角色组合中。

由于其特定于驼鹿的角色,我希望名称中包含驼鹿。模板::上下文::Moosified。或者模板::上下文::带鹿角

但是有一个中间子类,这样你就可以把角色粘在上面,这很奇怪。您可以跳过这个中间人,直接声明组合类

package Template::Context::ForBreakfast;

use Moose;
extends "Template::Context";
with "Bacon", "Eggs", "Toast";
package R; 
use Moose::Role; 
sub f { say 42 } 

package main; 
use URI;
R->meta->apply( Moose::Meta::Class->initialize( 'URI' ) ); 
URI->new->f

类名应该不在角色组合中。

我不确定这是否得到批准,但您可以尝试直接应用角色

package Template::Context::ForBreakfast;

use Moose;
extends "Template::Context";
with "Bacon", "Eggs", "Toast";
package R; 
use Moose::Role; 
sub f { say 42 } 

package main; 
use URI;
R->meta->apply( Moose::Meta::Class->initialize( 'URI' ) ); 
URI->new->f

当然,这需要一些甜言蜜语,绝对不能保证长期有效,而且可能完全不受支持。然而,这就是MOP Ungared有效工作的方式。

我不确定这是否得到批准,但您可以尝试直接应用该角色

package Template::Context::ForBreakfast;

use Moose;
extends "Template::Context";
with "Bacon", "Eggs", "Toast";
package R; 
use Moose::Role; 
sub f { say 42 } 

package main; 
use URI;
R->meta->apply( Moose::Meta::Class->initialize( 'URI' ) ); 
URI->new->f

当然,这需要一些甜言蜜语,绝对不能保证长期有效,而且可能完全不受支持。然而,这就是MOP Ungared有效工作的方式。

我真的不打算将它们用作/角色/(例如使用“with”),我计划将它们用作特征,并让它们更动态地组合到类中。我真的不打算将它们用作/角色/(例如使用“with”)我计划将它们作为特征使用,并让它们更加动态地组合到类中。