Tengo una duda sobre el uso de variables locales y globales.
A continuación muestro el código
Código PERL:
Ver original
sub Crear_Nuevas_Stats { my $answer = 0; my $DIRECTORIO_LOGS; my $prompt = Term::Menu->new( beforetext => ' '.colored(" HOSTINGS \n",'underscore cyan'), aftertext => colored("\n - Selecciona el hosting donde apunta la web: ",'cyan'), nooptiontext => '', toomanytries => colored("\n [ERROR] >>> Opcion incorrecta\n", 'bold red'), toomanytries => colored("\n [ERROR] >>> Opcion incorrecta\n", 'bold red'), ); do { $answer = $prompt->menu( HosAPA01 => ["HosAPA01", 1 ], HosAPA02 => ["HosAPA02", 2 ], HosIIS01 => ["HosIIS01", 3 ], HosIIS02 => ["HosIIS02", 4 ], HosIIS03 => ["HosIIS03", 5 ], Salir => ["Salir", 0 ], ); } until ($answer); if ($answer eq 'HosAPA01') { $DIRECTORIO_LOGS = $HOSAPA01_STATS; print colored(" [OK] >>> Para HosAPA01 se han encontrado los siguientes directorios:",'bold green'),"\n\n"; my @ficheros_logs = Existen_Logs(); if (@ficheros_logs) { } } elsif ($answer eq 'HosAPA02') { } elsif ($answer eq 'HosIIS01') { } elsif ($answer eq 'HosIIS02') { } elsif ($answer eq 'HosIIS03') { } elsif ($answer eq 'Salir') { } $dir_log_name = <STDIN> ; }
No consigo que última linea me muestre el valor de $DIRECTORIO_LOGS
print "Ruta: $DIRECTORIO_LOGS$dir_log_name\n";
que ha sido asignado dentro del IF (linea 24)
$DIRECTORIO_LOGS = $HOSAPA01_STATS;
He probado usando my y local pero no he conseguido el resultado esperado. Cuando llega al final del código, no tiene valor...
Podéis ayudarme?
Muchas gracias de antemano!