La diferencia entre variables dinámicas y léxicas debería quedar mas clara observando el siguiente ejemplo ...
lhp@nereida:~/Lperl/src$ cat -n local.pl 1 #!/usr/bin/perl -w 2 use strict; 3 4 our $x; 5 6 sub pr { print "$x\n"; } 7 sub titi { my $x = "titi"; pr(); } 8 sub toto { local $x = "toto"; &pr(); &titi(); } 9 10 $x = "global"; 11 &pr(); 12 &toto(); 13 &titi();
... y su ejecución:
> local.pl global toto toto global
Casiano Rodríguez León