Esto parece muy simple, pero me está resultando difícil descubrirlo ya que soy nuevo en Perl. He estado revisando mucha documentación sobre bucles y todavía estoy perplejo por esto ... tener un sub que contiene un ciclo while y quiero usar un valor de variable dentro del ciclo fuera del ciclo (después de que el ciclo se haya ejecutado), sin embargo, cuando intento imprimir la variable, o devolverla desde el sub, no funciona, solo cuando imprimo la variable desde el bucle funciona ... Agradecería cualquier consejo sobre lo que estoy haciendo mal.Perl, utilizando la variable desde adentro While while fuera del ciclo?
no funciona (no imprime $ prueba):
sub testthis {
$i = 1;
while ($i <= 2) {
my $test = 'its working' ;
$i++ ;
}
print $test ;
}
&testthis ;
Obras, impresiones $ ensayo:
sub testthis {
$i = 1;
while ($i <= 2) {
my $test = 'its working' ;
$i++ ;
print $test ;
}
}
&testthis ;
'$ i = 1;' probablemente debería ser 'my $ i = 1;', como está ahora, estás hablando con la variable '$ i' en el alcance externo que será una fuente de errores tan pronto como comience a llamar subrutinas desde otras subrutinas. Lo más probable es que '$ i' ni siquiera se declare en el ámbito externo, en cuyo caso usted está hablando con la variable del paquete. Si se ejecuta bajo 'use strict; use advertencias; 'entonces el pragma 'strict' hubiera arrojado un error sobre la variable no declarada. –