use strict; use warnings; print "calling outter from main:\n"; outter(); print "calling inner from main:\n"; inner(); print "calling outter from main:\n"; outter(); sub outter { my $var = 0; print " outter: $var\n"; print " calling inner, should increment 0 -> 1\n"; inner(); sub inner { print " inner: $var -> "; $var++; print "$var\n"; } } #### Variable "$var" will not stay shared at sub_in_sub.pl line 23. calling outter from main: outter: 0 calling inner, should increment 0 -> 1 inner: 0 -> 1 calling inner from main: inner: 1 -> 2 calling outter from main: outter: 0 calling inner, should increment 0 -> 1 inner: 2 -> 3