Página 1 de 1

Error con módulo en CGI::Application

NotaPublicado: 2009-03-05 16:12 @716
por danimera
Tengo un módulo que lo uso así
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
package seguimiento;

use strict;
use lib('/home/bitacor4/public_html/lib');
use lib('/home/bitacor4/public_html/modulos');
use base 'CGI::Application';

use CGI::Application::Plugin::DBH (qw/dbh_config dbh/);
use CGI::Application::Plugin::ConfigAuto (qw/cfg cfg_file/);
use CGI::Application::Plugin::Session;
use CGI::Application::Plugin::Authentication;
use HTML::GoogleMaps;
use CGI::FormBuilder;
use Data::Dumper;
use FILE::kreader qw(kread);  # este es mi módulo
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Código: Seleccionar todo
Software error:
"kread" is not exported by the FILE::kreader module
Can't continue after import errors at ../modulos/seguimiento.pm line 16
BEGIN failed--compilation aborted at ../modulos/seguimiento.pm line 16.
Compilation failed in require at seguimiento.pl line 7.
BEGIN failed--compilation aborted at seguimiento.pl line 7.


Y cuando lo uso así

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
package seguimiento;

use strict;
use lib('/home/bitacor4/public_html/lib');
use lib('/home/bitacor4/public_html/modulos');
use base 'CGI::Application';

use CGI::Application::Plugin::DBH (qw/dbh_config dbh/);
use CGI::Application::Plugin::ConfigAuto (qw/cfg cfg_file/);
use CGI::Application::Plugin::Session;
use CGI::Application::Plugin::Authentication;
use HTML::GoogleMaps;
use CGI::FormBuilder;
use Data::Dumper;
use FILE::kreader;  # este es mi módulo
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


sale esto
Código: Seleccionar todo
La aplicación tiene error:
Undefined subroutine &seguimiento::kread called at ../modulos/seguimiento.pm line 146.


Es vital esa función que tengo en el modulo FILE::kreader. La llamo dentro de un sub en mi código solamente así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $categorias = "../".$cliente."/db/categorias.txt";
       #my @categorias = obtener_categorias('$cliente');
       my @categorias = kread($categorias,0,0);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Qué podría ser? Eso sí: cuando no la uso con CGI::Application me funciona bien.

NotaPublicado: 2009-03-05 17:43 @780
por kidd
Me parece que el problema es que en tu módulo no estás exportando de manera correcta tus funciones.

NotaPublicado: 2009-03-06 08:38 @401
por danimera
Este es mi módulo

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting


use strict;



require Exporter;

{   no strict;

    @ISA = qw(Exporter);

   @EXPORT_OK = qw(makefile swrite cfind fwrite fedit fkread kread phs);

}


sub makefile{

}

sub kread{  

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Bueno, el inicio de mi módulo.

NotaPublicado: 2009-03-06 08:49 @409
por kidd
Prueba así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
package FILE::kreader;

use base 'Exporter';
use strict;

our @ISA = qw(Exporter);
our @EXPORT_OK = qw( makefile swrite cfind fwrite fedit fkread kread phs );

sub makefile{

}

sub kread{  

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y luego:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
package seguimiento;

use strict;
use lib('/home/bitacor4/public_html/lib');
use lib('/home/bitacor4/public_html/modulos');
use base 'CGI::Application';

use CGI::Application::Plugin::DBH (qw/dbh_config dbh/);
use CGI::Application::Plugin::ConfigAuto (qw/cfg cfg_file/);
use CGI::Application::Plugin::Session;
use CGI::Application::Plugin::Authentication;
use HTML::GoogleMaps;
use CGI::FormBuilder;
use Data::Dumper;
use FILE::kreader (qw/kread/);  # este es mi módulo
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4



Saludos

NotaPublicado: 2009-03-06 10:15 @469
por danimera
Problema solucionado. GRACIAS, Kidd.