什么让perl中的类是bless
sta tement。你用一个班级的名字祝福参考,而且是!那是班级。没什么特别的。
当然,你最终可能会遇到一个没有方法的类,这可能有点问题。但是,我这样做了,其中的子类都有一个共同的父类的子类,但类的类型改变类的行为:
Package Main_class;
use Carp;
sub new {
my $class = shift; #We'll ignore this one
my $subclass = shift; #This is my actual class
my $self = {};
my $class .= "::$subclass";
bless $self, $class; #Now, it's my class!
if (not $self->isa($class)) {
croak qw(Subclass "$subclass" is an invalid subclass);
}
return $self;
}
在我的计划,我会做到这一点:
my $object = Main_class->new($subclass);
而且,如果我不希望我的计划,以死...
my $object;
eval {
$object = Main_class->new($subclass);
}
if ([email protected]) {
Here be dragons.... #What do you do if that object creation failed...
}
这里有一个程序,我这样做的an example。
在这里我正在阅读的问题和他们的类型的文件。我读了宏名称,以及它的问题类型。然后我用我的父类来创建对象,但我用正确的子类保佑它。重要的是使用可用于所有类的isa
通用方法。我测试我创建的对象是否实际上是我的类的一个子类。
谢谢,只是我正在寻找的答案 – BuildingJarl