Problema de función o subrutina recursiva
![Nota Nota](https://perlenespanol.com/foro/styles/prosilver/imageset/icon_post_target.gif)
Saludos, Perleros.
Requiero realizar un proceso que se repite cierta cantidad de veces para lo cual realizando la codificación llegué a decidirme por una función recursiva. El problema es que al entrar la segunda vez a la función la misma no recibe los parámetros. ¿Me podrían ayudar a entender qué sucede o de qué otra forma lo podría hacer?
Inicialmente se le envía lo siguiente a la función:
y de la siguiente manera la función recibe los parámetros, cabe aclarar que lo anterior está fuera de la función y su ejecución es correcta:
Me genera la siguiente salida:
Luego en el interior de la función realizo lo siguiente:
Para lo cual la ejecución me genera la siguiente salida:
Evidentemente los arreglos creados dentro de la función contienen información y no sé lo que sucede al entrar de nuevo a la función porque no captura esos arreglos
.
Agradezco la ayuda o asesoría que me puedan prestar![Smile :)](https://perlenespanol.com/foro/images/smilies/icon_smile.gif)
Requiero realizar un proceso que se repite cierta cantidad de veces para lo cual realizando la codificación llegué a decidirme por una función recursiva. El problema es que al entrar la segunda vez a la función la misma no recibe los parámetros. ¿Me podrían ayudar a entender qué sucede o de qué otra forma lo podría hacer?
Inicialmente se le envía lo siguiente a la función:
Using perl Syntax Highlighting
- if($#port2Dev > 0 && $#toIpDev > 0){
- @port2Dev = grep { /\S/ } @port2Dev;
- @toIpDev = grep { /\S/ } @toIpDev;
- print "Elements (@port2Dev ) - (@toIpDev)\n\n\n";
- &getIpInterface(\@port2Dev,\@toIpDev,10);
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
y de la siguiente manera la función recibe los parámetros, cabe aclarar que lo anterior está fuera de la función y su ejecución es correcta:
Using perl Syntax Highlighting
- sub getIpInterface {
- print "Estoy en getIpInterface\n\n";
- ($port2Dev,$toIpDev,$algo)=@_;
- @secPortDev="";
- @secToIpDev="";
- print "entre a la función: (@$port2Dev, @$toIpDev) $algo\n\n";
- print "tamaño: ($#$port2Dev, $#$toIpDev)\n\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Me genera la siguiente salida:
Using bash Syntax Highlighting
- Estoy en getIpInterface
- entre a la función: (ge-2/0/0 Gi1/0/1, 10.0.120.129 190.60.229.25) 10
- tamaño: (1, 1)
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Luego en el interior de la función realizo lo siguiente:
Using perl Syntax Highlighting
- if($#secPortDev > 0 && $#secToIpDev > 0){
- @secPortDev = grep { /\S/ } @secPortDev;
- @secToIpDev = grep { /\S/ } @secToIpDev;
- print "New elements (@secPortDev) - (@secToIpDev)\n\n\n";
- &getIpInterface(\@secPortDev,\@secToIpDev, 2222);
- }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Para lo cual la ejecución me genera la siguiente salida:
Using bash Syntax Highlighting
- New elements (ge-1/0/18 Gi0/1) - (172.17.229.8 190.60.229.30)
- Estoy en getIpInterface
- entre a la función: (, ) 2222
- tamaño: (0, 0)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Evidentemente los arreglos creados dentro de la función contienen información y no sé lo que sucede al entrar de nuevo a la función porque no captura esos arreglos
![Sad :(](https://perlenespanol.com/foro/images/smilies/icon_sad.gif)
Agradezco la ayuda o asesoría que me puedan prestar
![Smile :)](https://perlenespanol.com/foro/images/smilies/icon_smile.gif)