sub test_a {
use warnings;
use strict;
my $arg = shift();
ref $arg ? $$arg->test_a([0]) : $arg;
}
sub test_b {
use warnings;
use strict;
my $arg = shift();
ref $arg ? test_a($$arg[0]) : $arg;
}
####
my $sub = sub { ...; $sub->(); .. };
##
##
sub test_a;
sub test_a { ...; recurse into test_a here };