in reply to Help! My variables are jumping off a cliff!

Note also that the two declarations introduce two separate variables that are in scope in different parts of the block; i.e. the second declaration isn't a NOOP:
my $x = 1; sub f1 { $x } my $x = 2; sub f2 { $x } print f1(), f2(), "\n"; # prints "12"

Dave.