#!/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__