sub Sa { foo(); # implicit return: foo() called in Sa() invocation context. } sub Sb { return foo(); # explicit return: foo() called in Sb() invocation context. } sub Sc { foo(); # foo() called in void context. no question. return; }