• Publicidad

Localización de un módulo

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

Localización de un módulo

Notapor primitivo » 2013-07-04 19:31 @855

Hola amigos, yo molestando nuevamente.

Quiero exportar un archivo como módulo, el cual llevo trabajando.

Tengo lo siguiente
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. package BDD;
  2.  
  3. use lib 'system/modules'; # Se supone que así, selecciono el directorio que contiene los módulos
  4. use parseChar; # este sería el módulo 'parseChar.pm'
  5. sub GetBDD
  6. {
  7.     my($registro,$Fichero,$Service,$user) = (shift,shift,shift,shift);
  8.     my $PunteroAFichero = &parseChar::GetCharsFile($Fichero); #Y esta es la subrutina del módulo
  9.     my $LimiteCadena;
  10.    
  11.     open(BDD,$Fichero) or screen("$BOTS{\"$Service\") P $user :Error al acceder a la database\n");
  12.     while (<BDD>)
  13.     {
  14.         $LimiteCadena++;
  15.         if ($LimiteCadena < $PunteroAFichero)
  16.         {
  17.                           my $DataOffsite = <BDD>;
  18.                           screen("$BOTS{\"$Service\") P $user :datos obtenidos -> $DataOffsite\n");
  19.         } else {
  20.                screen("$BOTS{\"$Service\") P $user :El puntero ha alcanzado el límite posible -> LimiteCadena '$LimiteCadena' PunteroAFichero '$PunteroAFichero'\n");
  21.         }
  22.     }
  23.     close(BDD);
  24. }
  25.  
  26. 1;
  27.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


El tema es que me da
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.  'syntax error'
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
¿Qué hago mal?
Última edición por explorer el 2013-07-05 09:13 @426, editado 1 vez en total
Razón: Ortografía
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Publicidad

Re: Localización de un módulo

Notapor explorer » 2013-07-05 09:19 @430

¿Y en qué línea dice Perl que está el error?

Por favor, publica el mensaje de error entero. Si solo sale eso en pantalla, entonces no se trata de un error Perl.
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

Re: Localización de un módulo

Notapor primitivo » 2013-07-05 16:43 @738

He solucionado el tema de syntax error, pero ahora, no me lee la subrutina del módulo que he hecho.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. Undefined subroutine &BDD::GetBDD called at system/admin.c line 223, <GEN0> line 1.
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


:)

Importé los módulos con
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. BEGIN { require "system/modules/BDD.pm"; Module->import(); }
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004

Re: Localización de un módulo

Notapor explorer » 2013-07-05 17:03 @752

La línea BEGIN que has puesto, la puedes sustituir por
use system::modules::BDD;

Al hacer eso, se llama a import(), pero eso no quiere decir que tengamos a nuestra disposición las variables y subrutinas definidas en el módulo (por eso te sale un error).

Lo que sí podemos hacer es llamar a la función, pero con el nombre completo: system::modules::BDD::GetBDD()

Finalmente, si te cansas de escribir system::modules::BDD::... entonces es cuando hay que echar mano del módulo Exporter, tal como se comenta en la sección Módulos Perl de perlmod (en español).
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

Re: Localización de un módulo

Notapor primitivo » 2013-07-05 18:41 @820

Muchas gracias, explorer.
primitivo
Perlero nuevo
Perlero nuevo
 
Mensajes: 80
Registrado: 2013-03-22 23:05 @004


Volver a Básico

¿Quién está conectado?

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

cron