#!/usr/bin/perl use strict; use warnings; $, = ': '; $" = ', '; foo('bar','test'); print "foo returned to top level\n"; fuu('bar','test'); print "fuu returned to top level\n"; sub foo{ print "foo(@_) called by "; print caller; print "\n"; &test; print "test returned to foo\n"; } sub fuu{ print "fuu(@_) called by "; print caller; print "\n"; goto &test; print "test returned to fuu\n"; } sub test{ print "test(@_) called by "; print caller; print "\n"; }