# Prints nothing BEGIN { @_ = 1 } print @_; # Prints 1 BEGIN { print 1; return; print 2; } # Prints main::BEGIN BEGIN { print +(caller(0))[3] } # (Un)expectedly, this won't recurse BEGIN { &BEGIN }