6 # subroutine A calls subroutine B with uplevel(), so when
7 # subroutine B queries caller(), it gets main as the caller (just
8 # like subroutine A) instead of getting subroutine A
11 print "Entering Subroutine A\n";
12 print "caller() says: ", join( ", ", (caller())[0 .. 2] ), "\n";
13 print "Calling B with uplevel\n";
18 print "Entering Subroutine B\n";
19 print "caller() says: ", join( ", ", (caller())[0 .. 2] ), "\n";