[perl][多重継承][Class::ISA]
package My; use strict; sub hoge { print 'My'. "\n"; } package My::A; use strict; use base 'My'; sub hoge { print 'My A'. "\n"; } package My::B; use strict; use base 'My'; sub hoge { print 'My B'. "\n"; } package My::Common; use strict; use warnings; sub hoge { print 'My Common'. "\n"; } package My::C; use strict; use warnings; use base qw(My::B My::Common); sub hoge { my $self = shift; $self->SUPER::hoge; print 'My C' . "\n"; } package main; use strict; use Class::ISA; My::C->hoge; print "path is: ", join(", ", Class::ISA::super_path('My::C')), "\n";
結果
My B My C path is: My::B, My, My::Common