Не плагины, но смысл похож.
Есть базовый класс, который при необходимости подключает нужные дочерние классы
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 mailing list
[email protected] | http://moscow.pm.org