package Foo; use strict; # Always sub foo { (shift)->(); # Call the function passed in by reference } package Bar; sub bar { print "This is bar\n"; } Foo::foo(\&bar); # Pass a ref to a sub to another package