Página 1 de 1

Can't call method "process" without a package

NotaPublicado: 2011-10-26 22:16 @970
por danimera
Me sale este error

Can't call method "process" without a package or object reference at libs/CGI/Application/Plugin/TT.pm line 314.

Estoy usando cgi-app y el plugin de TT pero no sé por qué me sale ese error... y me lo indica en el propio módulo del plugin.

Solo tengo esto en un método:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.  sub myrunmode {
  2.    my $self = shift;
  3.  
  4.    my %params = (
  5.                  email       => '[email protected]',
  6.                  menu        => [
  7.                                  { title => 'Home',     href => '/home.html' },
  8.                                  { title => 'Download', href => '/download.html' },
  9.                                 ],
  10.                  session_obj => $self->session,
  11.    );
  12.  
  13.    return $self->tt_process('template.tmpl', \%params);
  14.  }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-27 08:01 @375
por explorer
El error es debido a que el complemento no ha conseguido recuperar el objeto Template Toolkit, con tt_obj().

Algo ha pasado, que no se ha creado ese objeto.

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-27 08:46 @407
por danimera
Ya vi que cuando pruebo directamente el Template Toolkit me pasa lo mismo, y yo subí todo bien, el módulo está y lo carga pero obtengo el mismo error :S

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-27 14:11 @632
por explorer
Pero, ¿te ha funcionado en local?

Mirando el código, el responsable es tt_obj(), que a su vez llama a _get_object_or_options(), pero es en tt_obj() donde se crea el objeto Template Toolkit.

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-27 14:14 @635
por danimera
Pues ya no estoy usándolo desde el plugin, ahora lo uso directo.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.  # create Template object
  2.     my $template = Template->new();
  3.    
  4.     # define template variables for replacement
  5.     my $vars = {
  6.         var1  => $value,
  7.     };    
  8.    
  9.     my $input = 'myfile.html';
  10.    
  11.     # process input template, substituting variables
  12.     $template->process($input, $vars)
  13.         || die $template->error();
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Me sale lo mismo, claro que yo subí el template-toolkit manualmente al server, porque no lo encontraba, y ahora pues no me marca error de módulo no encontrado, si no que me sale ese error de método.

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-27 18:43 @822
por explorer
Yo lo ejecutaría en local, con el depurador, paso a paso, hasta llegar a esa línea, y ver por qué tt_obj() no genera el objeto TT. O en vez de ir paso a paso, pondría un punto de ruptura (breakpoint) en tt_obj(), y analizar lo que hace.

He leído el manual del complemento y, aunque dice que tt_config() no es necesario llamarlo, quizás podría ser la causa de que te falle.

No sé...

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-28 05:05 @253
por danimera
En local funciona bien... :S -----

Creo que es ese server que no me crea bien el objeto, porque cuando hago un print dumper de $template... ¡ja!, no imprime nada...

:) seguro que lo instalé mal, pero bueno, ya usé HTML-Template... para no gastar más tiempo.

Re: Can't call method "process" without a package

NotaPublicado: 2011-10-28 05:14 @260
por explorer
¿Has visto los logs?

Es posible que allí estén los mensajes de error...

Apuesto a que te faltó subir algún módulo ;)