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; }