什麼讓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