Buenas,
Tengo una duda sobre el uso de variables locales y globales.
A continuación muestro el código
Código PERL:
Ver originalsub 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') {
print "Cargando variables para el hosting HosAPA01\n"; $DIRECTORIO_LOGS = $HOSAPA01_STATS;
print "$DIRECTORIO_LOGS\n"; print colored
(" [OK] >>> Para HosAPA01 se han encontrado los siguientes directorios:",'bold green'),"\n\n"; my @ficheros_logs = Existen_Logs();
if (@ficheros_logs) {
print colored
("\n Coincidencias encontradas:", 'bold green'),"\n @ficheros_logs\n"; }
}
elsif ($answer eq 'HosAPA02') {
print "Cargando variables para el hosting HosAPA02\n"; }
elsif ($answer eq 'HosIIS01') {
print "Cargando variables para el hosting HosIIS01\n"; }
elsif ($answer eq 'HosIIS02') {
print "Cargando variables para el hosting HosIIS02\n"; }
elsif ($answer eq 'HosIIS03') {
print "Cargando variables para el hosting HosIIS03\n"; }
elsif ($answer eq 'Salir') {
print "Saliendo del programa\n"; }
print colored
("\n - Pega el directorio donde estan los fichero de logs: ",'cyan'); $dir_log_name = <STDIN> ;
print "El directorio es $dir_log_name\n"; print "Ruta: $DIRECTORIO_LOGS$dir_log_name\n";
}
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!