调用多个类 - Perl

时间:2014-10-13 04:16:40

标签: perl

您好我正在为我的项目开发扩展系统,我尝试做的是加载多个软件包以便我可以使用它们。我有一个包含其键的包的哈希,我想使用这些键作为参考来访问多个方法。我可以使用Moose或Moo扩展这些包,但我想尝试新的东西。

以下是代码:

my %classes = (
    eng => 'EnglishClass',
    esp => 'SpanishClass',
    fre => 'FrenchClass',
    hin => 'HindiClass'
);
while ( my ( $classType, $className ) = each(%classes) ) {
    $self->{$classType} = $className->new();
}

它似乎正在加载但是当我尝试访问方法时,即使我使用正确的密钥进行参考,也会调用错误的包。

1 个答案:

答案 0 :(得分:2)

你的例子适合我。你能说明你是如何访问这些对象的吗?

我快速接受它;

#!/usr/bin/env perl
use strict;
use feature qw/say/;

my %classes = (
    eng => 'ENG',
    esp => 'ESP'
);

my $self = {};
while ( my ( $classType, $className ) = each(%classes) ) {
    $self->{$classType} = $className->new();
}

$self->{'eng'}->hello();

package ENG;
sub new { return bless {}, shift; }
sub hello { say 'Hello from ENG'; }

package ESP;
sub new { return bless {}, shift; }
sub hello { say 'Hello from ESP'; }

1;