The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
use strict;
use warnings;

use Test::More;

{
    package My::Parent;
    use Mouse;
    sub BUILD {}
}
{
    package My::ChildA;
    use Mouse;
    extends 'My::Parent';
    sub BUILD {}
}
{
    package My::ChildB;
    use Mouse;
    extends 'My::ChildA';
    sub BUILD {}
}

sub fac {
    my $num = $_[0];
    if ($num == 1) {
        My::ChildB->new();
        return 1;
    } else {
        $num * fac($num - 1);
    }
}

is fac(2), 2;

done_testing();