• Publicidad

Problema con variable y función

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

Problema con variable y función

Notapor zackarias » 2011-09-27 19:56 @872

hola, soy nuevo en el foro.

Estoy creando una interfaz gráfica para un programa de Bioperl. Estoy usando glade + gtk para crear la interfaz.

El problema es cómo hacer global la variable $archivo_seleccionado ya que la necesito para otra función de otro botón que es el encargado del script Bioperl.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. # función para el botón de selección de archivo
  2. sub seleccion_archivo_file_set_cb {
  3.          my $archivo_seleccionado = $seleccion_archivo->get_filename;
  4. return ($archivo_seleccionado);
  5.        
  6. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


si hago esto para guardarla en otra variable
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ruta = seleccion_archivo_file_set_cb;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

me aparece esto:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Global symbol "$ruta" requires explicit package name at archivo.pl line 16.
Bareword "seleccion_archivo_file_set_cb" not allowed while "strict subs" in use at archivo.pl line 16.
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Puedo llamar a esta función de esa manera o estoy erróneo?
Por su comprensión, gracias. Saludos.
Avatar de Usuario
zackarias
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-09-27 19:33 @856

Publicidad

Re: Problema con variable y función

Notapor explorer » 2011-09-27 20:10 @881

Bienvenido a los foros de Perl en español, zackarias.

Yo juraría que el problema está en otro sitio...

¿Podrías hacer un ejemplo muy pequeño, de un programa mínimo, en que se produzca el mismo error?

Para que una variable sea global a todas las funciones del programa, basta con declarar fuera de esas funciones, al principio, con my() u our().
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problema con variable y función

Notapor zackarias » 2011-09-27 20:19 @888

Gracias, explorer, por responder tan rápido.

Declaré las variable fuera de la función pero me sigue apareciendo este problema:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Bareword "seleccion_archivo_file_set_cb" not allowed while "strict subs" in use
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


¿Será porque es una función de uno de los botones que no se puede llamar?

Te dejo lo que llevo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use Gtk2 '-init';
  4. use Gtk2::GladeXML;
  5. use Bio::SeqIO;
  6.  
  7. # Variables
  8. my($programa, $ventana_principal, $seleccion_archivo,$guardar_archivo,$archivo_seleccionado,$ruta);
  9.  
  10. $programa = Gtk2::GladeXML->new('interfaz.glade');
  11.  
  12. # Widgets
  13. $ventana_principal = $programa->get_widget('ventana_principal');
  14. $seleccion_archivo = $programa->get_widget('seleccion_archivo');
  15. $guardar_archivo = $programa->get_widget('guardar_archivo');
  16. $ruta = seleccion_archivo_file_set_cb;
  17. $programa->signal_autoconnect_from_package('main');
  18. $ventana_principal->show_all();
  19.  
  20. Gtk2->main;
  21.  
  22. # función para salir
  23. sub boton_cerrar_clicked_cb {Gtk2->main_quit;}
  24. sub boton_salir_activate_cb {Gtk2->main_quit;}
  25. sub guardar_clicked_cb {$guardar_archivo->show_all();}
  26. sub cancelar_clicked_cb{$guardar_archivo->hide;}
  27.  
  28. # función para el botón de selección de archivo
  29. sub seleccion_archivo_file_set_cb {
  30.           $archivo_seleccionado = $seleccion_archivo->get_filename;
  31.           return ($archivo_seleccionado);
  32. }
  33.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
Avatar de Usuario
zackarias
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-09-27 19:33 @856

Re: Problema con variable y función

Notapor explorer » 2011-09-27 20:35 @899

Hummm... qué extraño... yo lo veo bien...

Agrégale '()' al final:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ruta = seleccion_archivo_file_set_cb();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $ruta = &seleccion_archivo_file_set_cb;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Una cosa... supongo que te habrás dado cuenta de que la línea 16 se ejecutará inmediatamente, antes de llegar al bucle de espera de la línea 20, por lo que quizás, en $ruta, no habrá nada.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Problema con variable y función

Notapor zackarias » 2011-09-27 21:55 @955

Solo era un misero '()'.

Gracias, explorer.

Saludos.
Avatar de Usuario
zackarias
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2011-09-27 19:33 @856


Volver a Básico

¿Quién está conectado?

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

cron