use warnings; use 5.012; package Own { sub parent { my $self = shift; say "called Own::parent()"; # Debug return Own::Dir->new('...'); } } package Own::File { use parent -norequire, 'Own'; use parent 'Path::Class::File'; } package Own::Dir { use parent -norequire, 'Own'; use parent 'Path::Class::Dir'; } say "Own::File->parent: ", Own::File->new('.')->parent; say "Own::Dir->parent: ", Own::Dir->new('.')->parent;