But a note on naming: that rather looks like a "factory class", not like "converting to a subclass". If the class denominated by $self->{extension} has DUM::DUMMY in its @ISA, it is a subclass of DUM::DUMMY. Does the following (add sanity checks for @_ and such) fit into your design?
package DUM::DUMMY; use base 'DUM::Base'; sub new { my $class = shift; my %args = @_; my $ext; if ($ext = delete $args{extension} ) { my $backend = 'DUM::DUMMY::'.$self->{extension}; eval "require $backend"; if ($@) { # handle errors: die? return undef? set $@ ? } } my $self = $class->SUPER::new(%args); bless $self, 'DUM::DUMMY::'.$ext if $ext; $self; }
--shmem
_($_=" "x(1<<5)."?\n".q·/)Oo. G°\ /
/\_¯/(q /
---------------------------- \__(m.====·.(_("always off the crowd"))."·
");sub _{s./.($e="'Itrs `mnsgdq Gdbj O`qkdq")=~y/"-y/#-z/;$e.e && print}
In reply to Re: converting to a sub-class
by shmem
in thread converting to a sub-class
by Cagao
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |