The problem with those, I think, is the problem I had above. They won't work if the code is declared after I try to inspect it because GV->LINE apparently reports the first glob entry ... and that's created when I take the reference.
On P5P, Rafael suggested I use START->line instead. It returns the line number of the first expression encountered in the sub. Not perfect, but close enough to what I want (I also encountered GV->LINE returning the line number of the closing curly brace in the sub. Much worse than START.