sub new { my ($class, @args) = @_; my $destination_class = figure_destination_class(@args); # or whatever my $self = bless {}, $destination_class; $self->initialize(@args); return $self; } #### sub new { my ($class, @args) = @_; my $destination_class = figure_destination_class(@args); # or whatever # verify that the $destination_class is a valid package name # and a proper sub-namespace of $class, and detaint if ($destination_class =~ /^(\Q$class\E(?:::[a-zA-Z_]\w*)+)$/)) { eval "require $1" or die $@; } else { die "'$destination_class' is an invalid class name for sub-classes of $class\n"; } my $self = bless {}, $destination_class; $self->initialize(@args); return $self; } #### ------------ :Wq Not an editor command: Wq