Página 1 de 1

Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-22 17:58 @790
por scout
¿Puede ser que si pasamos una variable a una subrutina, que dentro de ella tiene dos conexiones a bases de datos, la variable solamente se pueda usar durante la primera conexión y/o while() ...??

Resultado correcto: la variable se muestra en un print() dentro del primer while()...
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
fin de primer hoja  6612  
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


El mismo print() fuera del while() no se muestra la variable 6612
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
fin de primer hoja

 fin de Segunda hoja   ---------------------------------------------------------
-
----------------------------------------------------------
--------ARCHIVOS CREADOS CORRECTAMENTE--------------------
----------------------------------------------------------
----------------------------------------------------------
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Re: variable que no se mantiene dentro de un while en subrutina.

NotaPublicado: 2009-11-22 18:25 @809
por charlygarcia
¡¡Qué pregunta tan rara!!
¿O no es una pregunta?

¿O estará mal redactada?

En fin.

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-22 18:53 @828
por explorer
Pues... yo creo que la respuesta a la pregunta, es... sí.

:?

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-22 18:56 @830
por scout
Dentro de la misma subrutina... dentro del while() imprimo bien la variable pero
dentro de la misma subrutina... fuera del while() no imprime la variable...

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-23 04:45 @239
por explorer
Pues eso es que has escrito mal la variable o que ha sido cambiada.

Sin ver el código no es posible decirte mucho más.

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-23 05:26 @268
por scout
Lo solucioné con un pasaje de variables dentro del while()... asigné el valor de la variable original a una nueva variable... y funcionó... lo que me interesa aprender es el porqué no retiene el valor una variable luego de un while()... si alguien lo sabe soy todo oídos... sino seguiré en la lucha...

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-23 05:45 @281
por explorer
Sin ver el código lo único que se me ocurre es que estamos hablando de una variable local al bucle while(), definida con my().

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-23 05:53 @287
por scout
Eres mago... Así es; es una variable definida al principio del programa con un my()...
la paso a la subrutina y en el primer while() funciona bien pero al salir del while() no se muestra...
Por eso la reasigné dentro del while() y funcionó...

Gracias por los consejos y mover este foro...

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-23 06:28 @311
por explorer
No. Yo me refería a que definieras una variable dentro del bucle while().

Si has definido una variable con my() en el programa principal, esa variable es conocida en todo el programa, incluidas las subrutinas (y dentro y fuera de los while()).

Pero como no hay código que quieras mostrar, pues nos quedaremos con la duda.

Re: Variable que no se mantiene dentro de un while en subrutina

NotaPublicado: 2009-11-24 17:52 @786
por scout
Perl 10, scout 0.

Muy bien, aprendí que el my() dice mucho en estos casos...
Solucionado correctamente asignando variable desde el inicio.