Página 1 de 1

Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-25 22:17 @970
por usarioma
Hola a todos, soy nuevo en el foro, espero que me puedan ayudar.

¿Cómo hago para usar la función require o include de PHP en Perl? O sea, ¿cuál es su equivalente? Probé usando el require y el do pero no hacen lo mismo.

O sea, tengo un script de configuración en el que guardo las variables de conexión a la BD y cuando hago un require en el script principal que llama a este script de configuración no agarra esas variables. ¿Cómo hago para que agarre las variables como si se tratara de un solo script?

Es que en el archivo de configurción me conecto a una BD y saco los valores iniciales con cual ejecutar la aplicación, entonces necesito obtener esa variable que asocia a la conexión a la BD para no estar volviendo a conectar, sino usar esa que ya existe en el archivo de configuración. ¿Cómo lo hago?

Re: Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-26 04:13 @217
por explorer
Bienvenido a los foros de Perl en Español, usarioma.

El otro día estuvimos hablando de do(), que es justo lo que puedes usar.

configuracion.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. our $BD = 'Base de datos';
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

programa.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. our $BD;
  7.  
  8. do 'configuracion.pl';
  9.  
  10. print "$BD\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-26 08:55 @413
por usarioma
Muchas gracias.

¿Y si necesito que el script configuracion.pl me retorne un valor para procesarlo en programa.pl? ¿Cómo hago eso?

Re: Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-26 09:48 @450
por explorer
Podrías definir una subrutina dentro del fichero de configuración y luego ejecutarla dentro del programa.

Pero eso depende de si quieres retornar un valor en función de la carga del primero o si puedes ejecutarlo después.

Si nos dices que es lo que quieres hacer, te podríamos ayudar

Actualización: sí que se puede hacer con do(), que devuelve el valor de la última sentencia:
Sintáxis: (configuracion.pl) [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. our $BD = 'Base de datos';
  7.  
  8. 2;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Sintáxis: (programa.pl) [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. our $BD;
  7.  
  8. my $resultado = do 'configuracion.pl';
  9.  
  10. print "$BD, $resultado\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Re: Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-31 10:21 @473
por usarioma
Gracias, esto del our() me sirvió de mucho. Sería bueno encontrar la documentación en Español, porque mi inglés no es de los mejores y a veces traduzco mal y por eso pienso que tal función no me puede servir.

Re: Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-31 13:58 @624
por explorer

Re: Incluir script dentro de otro y usar sus variables

NotaPublicado: 2009-08-31 16:14 @718
por creating021
Eso también se puede hacer con eval. El problema es que con éste se usa más memoria y es más lento que do porque abre e interpreta el archivo; luego ejecuta, mientras que do no da tantas vueltas (creo).