#!/usr/bin/perl use strict; use warnings; my $i = 0; main(); sub main { exit if $i++ > 10; print "Calling foo()\n"; foo(); } sub foo { print "foo()\n"; my $fn = main->can("bar") or return; print "We can bar\n"; $fn->(); } __END__ #### Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo() Calling foo() foo()