sub make_class { my ($class, $base_class) = @_; my $isa_glob = do { no strict 'refs'; ${"${class}::"}{ISA} }; if (!$isa_glob || !*$isa_glob{ARRAY}) { @$isa = $base_class; } } { my $group = 'MyThingy'; make_class("${group}::$_', 'Thingy::$_') foreach qw( Cog Ramp Handle ); ... }