use 5.010; use strict; use warnings; { package Foo::Bar; our @ISA = qw(Quux); } sub get_isa { my $klass = shift; my $stash = \%::; for my $part (split '::', $klass) { $stash = \%{ *{ $stash->{$part . '::'} } }; } $stash->{ISA}; } my $isa = get_isa('Foo::Bar'); say "Foo::Bar isa $_" for @$isa;