• Publicidad

Utilizar parámetros de entrada

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Utilizar parámetros de entrada

Notapor JP » 2006-09-27 05:00 @250

Hola:
Soy nuevo en Perl y tengo un problema. Tengo un fichero fichero.pl, al que le quiero introducir un parámetro desde el exterior. Ya que dentro del código de este programa, hay un bucle alternativo, que si la variable introducida es nula, se ejecuta una sentencia, y en caso de que no sea nula se ejecuta otra. No sé cómo hacer eso, para que desde fuera se pueda utilizar. Muchas gracias.
JP
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2006-07-06 05:44 @281

Publicidad

Notapor explorer » 2006-09-27 05:19 @263

En el programa, al principio, pones:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$parametro = shift @ARGV;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
y lo llamas con:
Código: Seleccionar todo
perl tuprograma.pl parámetro
y ya tendrás tu parámetro dentro del programa.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor JP » 2006-09-27 06:15 @302

Hola,
Muchas gracias por tu ayuda, me ha sido muy útil. Pero ahora tengo otro problema, algunas veces no tengo que introducir ningún parámetro y dentro del bucle alternativo, comparo si el parámetro es vacío, pero cuando no introduzco parámetro me da error, de que la variable (el parámetro que tengo que introducir) no está inicializada.

Muchas gracias
JP
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2006-07-06 05:44 @281

Notapor explorer » 2006-09-27 06:23 @307

Entonces está funcionando bien. En la comprobación de la variable sólo tienes que poner
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $parametro ) { ...
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
y ya no saldrá ese aviso.

En Perl, una variable puede tener el valor indefinido (undef).

El aviso te sale porque estás intentando comparar o usar la variable $parametro, con algo como por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ( $parametro eq '' ) { ...
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Si necesitas imperiosamente que la variable $parametro tenga un valor, cambia la línea por esta otra:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$parametro = shift(@ARGV) || '';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

De esa manera, $parametro tendrá el valor introducido por el usuario o '' (cadena vacía). El '||' (or) se quedará con la primera expresión que sea verdadera, empezando por la izquierda. En el caso de que el usuario no introduzca nada, (shift devuelve 'undef'), $parámetro valdrá ''.
Última edición por explorer el 2006-10-12 08:54 @413, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor JP » 2006-09-27 06:45 @323

Hola de nuevo:
He puesto lo que me has dicho pero sigue sin funcionarme.
El problema que tengo es el siguiente:

Tengo un fichero en php, y ahí es donde se introduce el parámetro. Desde este fichero se ejecuta un fichero.pl, y se le pasa $parámetro haciendo: fichero.pl $parametro.

Dentro del fichero.pl, se ejecuta otro fichero2.pl y ahí es donde habrá un bucle if/else, que en caso de que no se introduzca parámetro se ejecuta una sentencia y caso contrario otra.

Si yo por la línea de comandos hago fichero.pl, funciona correctamente.
El problema está cuando todo esto lo hago desde la web, invocando primero el código php.

Muchas gracias
JP
Perlero nuevo
Perlero nuevo
 
Mensajes: 5
Registrado: 2006-07-06 05:44 @281

Notapor kidd » 2006-09-27 08:47 @408

Hola:

Sería más fácil ayudarte si pudieras poner ejemplos de lo que estás haciendo, y quizá el mensaje de error que estés recibiendo.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 10 invitados