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
