Какова лучшая практика для обнаружения всех суперклассов класса Perl?

Существует ли стандартный CPAN-способ обнаружения всех суперклассов класса Perl (или, что еще лучше, всего дерева суперклассов, вплоть до UNIVERSAL)?

Или лучше просто изучить@{"${$class}::ISA"} для каждого класса, родителей класса и т.д ...?

Ответы на вопрос(4)

Error: User Rate Limit ExceededmroError: User Rate Limit Exceededmro::get_linear_isa.

use mro;
my @superclasses = mro::get_linear_isa($class);

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

use Class::ISA;
use Mojolicious;
print join "\n", Class::ISA::super_path("Mojolicious");

Error: User Rate Limit Exceeded

Mojo
Mojo::Base

Error: User Rate Limit Exceeded

Решение Вопроса

Error: User Rate Limit Exceeded

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded

Error: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit ExceededError: User Rate Limit Exceeded@ISAError: User Rate Limit Exceeded

use perl5i::2;

func print_isa_tree($class, $depth) {
    $depth ||= 0;

    my $indent = "    " x $depth;
    say $indent, $class;

    for my $super_class ($class->mc->ISA) {
        print_isa_tree($super_class, $depth+1);
    }

    return;
}


my $Class = shift;
$Class->require;

print_isa_tree($Class);

__END__
DBIx::Class
    DBIx::Class::Componentised
        Class::C3::Componentised
    DBIx::Class::AccessorGroup
        Class::Accessor::Grouped

Error: User Rate Limit Exceeded@ISAError: User Rate Limit Exceededuse base qw(...)Error: User Rate Limit Exceededuse parent -norequire, ...Error: User Rate Limit Exceeded@ISA...

Ваш ответ на вопрос