• Publicidad

Undefined subroutine &main::???

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Undefined subroutine &main::???

Notapor danimera » 2008-10-18 20:36 @900

Tengo este mensaje:

Código: Seleccionar todo
Software error:
Undefined subroutine &main::fkread called at E:\O'Telch\Sitios web\bitacora\riocauca\panel.pl line 49.

Mi módulo es FILE::kreader;
Cuando mi módulo lo llamo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl -w

use CGI::Carp qw(fatalsToBrowser);
use CGI qw(:all);
use lib('../modulos');

print header;

#use CGI::Session;
use HTML::Template;
use Data::Dumper;
use HTML::CalendarMonth;
use FILE::kreader;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Y dentro de mi módulo tengo esto:

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

use strict;

require Exporter;


{   no strict;

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

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Y cuando comento la primera línea de mi módulo

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

use strict;

require Exporter;


{   no strict;

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

}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Obtengo esto:

Código: Seleccionar todo
Software error:
FILE/kreader.pm did not return a true value at E:\O'Telch\Sitios web\bitacora\riocauca\panel.pl line 13.


Y para rematar, si importo desde mi código la función que tengo en mi módulo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use FILE::kreader qw(fkread);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Eso sí... le quito el comentario a package FILE::kreader; la primera línea de mi módulo y obtengo esto:

Código: Seleccionar todo
Software error:
Undefined subroutine &FILE::kreader::fkread called at E:\O'Telch\Sitios web\bitacora\riocauca\panel.pl line 49.


Pero si comento la primera línea de mi módulo y llamo a mi módulo así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use FILE::kreader qw(fkread);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


obtengo esto

Código: Seleccionar todo
Software error:
FILE/kreader.pm did not return a true value at E:\O'Telch\Sitios web\bitacora\riocauca\panel.pl line 13.


La verdad no sé qué pasó si mi módulo ha funcionado super bien, solo agregué una nueva función llamada fkread, y tiene el número 1 al final mi módulo también.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Publicidad

Notapor explorer » 2008-10-18 21:52 @952

Parece un fallo de sintaxis, quizás en alguna línea anterior a la definición de la subrutina.

usa strict, warnings y diagnostics, a ver si te cuentan algo más...
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

Notapor danimera » 2008-10-18 22:10 @965

No, no me sale nada más y usé todo lo que me sugieres. Solo me sale

Código: Seleccionar todo
Undefined subroutine &FILE::kreader::fkread called at E:\O'Telch\Sitios web\bitacora\riocauca\panel.pl line 49.


y es todo. La subrutina está bien escrita... borré incluso todas las demás hasta dejar la subrutina vacía, es decir, sub fkread{};

Mejor dicho, esto es lo que tengo en mi módulo:

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

use strict;

require Exporter;


{   no strict;

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

}

#########################################

#Kreader para Manipular ficheros y sus campos
#Autor Name: Daniel Mera
#Nick: 100% Telch
#Pais: Colombia
#Email: [email protected]
#Version: 1

#########################################

sub fkread{
};

1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor danimera » 2008-10-18 22:15 @968

Aveces obtengo esto cuando no lo exporto del módulo:

Código: Seleccionar todo
 "fkread" is not exported by the FILE::kreader module


pero si lo exporto desde el módulo:

Código: Seleccionar todo
Undefined subroutine &FILE::kreader::fkread called at
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor explorer » 2008-10-18 23:21 @015

Con lo siguiente me funciona:

programa.pl:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl
use strict;
use warnings;
use diagnostics;

use kreader qw(fkread);

fkread(9);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

kreader.pm:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

package kreader;

require Exporter;

use strict;

our @ISA       = qw(Exporter);
our @EXPORT_OK = qw(fkread);

sub fkread{
    print "@_\n";
};

1;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Estoy casi convencido de que se trata de un error de sintaxis...
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

Notapor danimera » 2008-10-19 02:41 @153

Sí... es un error de sintaxis aunque aun no veo dónde está... pero debe estar fuera del módulo; miraré a ver qué logro.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor danimera » 2008-10-19 11:27 @519

AL FIN LO LOGRÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉÉ

TODO LO MÍO ESTABA BIEN. EXPLORER... el problema fue que use el optiperl y al parecer cuando subía o guardaba los archivos me quedaron unos caracteres extraños que solo pude ver con un editor de texto en consola. Borré estos caracteres y creé un archivo nuevo, copié y pegué mi código fuente y listo. Jejeje, me funcionó bien ^^


GRACIAS POR TODO... AVECES NOS PASAN ESTAS COSAS.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Notapor explorer » 2008-10-19 11:54 @537

Sería interesante saber qué caracteres eran y si estaban en alguna determinada posición, por si alguien más usa ese programa y le pase lo mismo...
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

Notapor kidd » 2008-10-20 07:38 @360

Quizá el problema no era el editor, sino el programa FTP que estaba subiendo el archivo al servidor como Binario y no como ASCII.
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor danimera » 2008-10-23 12:56 @580

No... lo subía bien... lo que pasa es que cuando lo subía era que cambia la ruta del intérprete Perl... entonces ese era un problema. Ese archivo lo subía desde el mismo programa editor.

El otro eran unos caracteres muy extraños al inicio del archivo algo como: ╝♫╖ y todos los saltos de línea me los convertía en algo raro... esto en el Optiperl... Claro que es porque usé una versión crackeada y no de pago ^^ así que si tienen problemas similares mirar que el archivo no tenga caracteres extraños.
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Siguiente

Volver a Módulos

¿Quién está conectado?

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