in reply to Dynamically setting up inheritence at runtime

I'm going to assume you want a parent class "Foo", and subclasses Alpha, Beta, ... from Foo, to be determined at run time. You may want to use code similar to the following (untested!):
use strict; use warnings; # Parent class. package Foo; sub new { my $class = shift; my $subclass = shift; { no strict 'refs'; push @{"${subclass}::ISA"}, "Foo" unless grep {$_ eq "Foo"} @{"${subclass}::ISA"} } bless {} => $subclass; } package Alpha; sub read {return "Alpha"} package Beta; sub read {return "Beta"} my $oa = Foo->new("Alpha"); my $ob = Foo->new("Beta");