local permite emular el efecto:
lhp@nereida:~/Lperl/src$ cat -n nestedsub.pl
 1  #!/usr/bin/perl
 2  use strict;
 3  use warnings;
 4
 5  sub interior {
 6    my $x = shift;
 7    print "sub marine: $x\n";
 8    $x*$x;
 9  }
10
11  sub exterior {
12    my $x = $_[0] + 3;
13    no strict 'refs';
14    no warnings;
15    local *interior = sub { print "interior anidada: $x\n"; return $x - 1 };
16    return $x + interior();
17  }
18
19  print 'exterior(2) = ',exterior(2),"\n";
20  print 'interior(3) = ',interior(3),"\n"
En este ejemplo se ha creado en la lınea 15 una subrutina denominada
interior que ensombrece a la subrutina interior global 
definida en la lınea 5 y que además tiene acceso al
ámbito de exterior. Esta subrutina interior de la lınea
15 es accesible solamente
desde la subrutina exterior.
El resultado de la ejecución es:
lhp@nereida:~/Lperl/src$ ./nestedsub.pl interior anidada: 5 exterior(2) = 9 sub marine: 3 interior(3) = 9Obsérvese que hemos omitido la opción
-w del intérprete
y hemos usado el módulo warnings. 
interior de la lınea 15?
¿Serıa visible desde una subrutina que fuera llamada desde 
exterior en un punto posterior a su creación?Casiano Rodríguez León
