[Moscow.pm] Плагины в perl программах

Denis Evdokimov evdokimov.denis на gmail.com
Пт Мар 12 06:16:01 PST 2010


Не плагины, но смысл похож.
Есть базовый класс, который при необходимости подключает нужные дочерние классы

sub new
{
    my $class = shift;
    my $self  = {@_};

    if ( $class ne __PACKAGE__ )
    {

        #Ничего делать не надо
        # $class = $class;
    }
    elsif ( $self->{type} )
    {
        my $type = $self->{type};
        $type =~ tr/-/_/;
        my $new_class    = __PACKAGE__ . '::' . $type;
        my $require_file = $new_class . '.pm';
        $require_file =~ s!::!/!g;
        require $require_file;
        $class = $new_class;
    }
    else
    {
        die "Unknown type";
    }

    bless $self, $class;
    return $self;
}


Подробная информация о списке рассылки Moscow-pm