• Publicidad

Error de perl58.dll al probar archivo pl por línea

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Error de perl58.dll al probar archivo pl por línea

Notapor scout » 2009-11-24 19:02 @835

Gente, comenzó a pasar algo raro: me está dando error de perl58.dll, que no lo encuentra...
cuando ejecuto un script, ¿cómo puedo saber dónde está apareciendo o causando el problema...?

Tengo estos use()... les cambié el orden en varios casos y pasa lo mismo...
Lo más raro es que el mismo script no da el error en otro ordenador...
Por ello reisntalé el Perl pero sigue igual...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#use strict;
use DateTime::Format::Strptime;
use DateTime;
#use warnings;
use diagnostics;
use Term::Menu;
use DBI;
use Carp;
use Spreadsheet::WriteExcel;
use Spreadsheet::Write;
use POSIX qw/ strftime /;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Publicidad

Re: Error de perl58.dll al probar archivo pl por línea

Notapor erv-Z » 2009-11-24 19:13 @842

man, cuando vayas a usar un módulo no le pongas '#' porque lo que seguirá después de él será tomado como comentario. Te recomiendo que los módulos los vayas probando en uno a uno. Si lo has probado en diferentes PC y ha funcionado, puede ser que en la que no te esté funcionado necesita un módulo que no lo tiene instalado...

El código va de esta manera.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
use DateTime::Format::Strptime;
use DateTime;
use warnings;
use diagnostics;
use Term::Menu;
use DBI;
use Carp;
use Spreadsheet::WriteExcel;
use Spreadsheet::Write;
use POSIX qw/ strftime /;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


También puedes usar el módulo Module::Load::Conditional para verificar los módulos que tienes instalados.
Última edición por explorer el 2009-11-24 19:39 @860, editado 1 vez en total
Razón: Ortografía
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Error de perl58.dll al probar archivo pl por línea

Notapor explorer » 2009-11-24 19:49 @867

erv-Z, si scout ha comentado un par de líneas, es porque no quiere que se ejecuten.

En cuanto los módulos mostrados, hay algunos detalles interesantes...

* Lo normal es que los pragmas strict y warnings sean colocados al principio

* Si pones use DateTime::Format::Strptime; entonces no es necesario poner use DateTime. ¿Por qué? Pues porque ese módulo ya se encarga de importarlo por nosotros

* Lo mismo pasa con Spreadsheet::WriteExcel y Spreadsheet::Write: solo es necesario poner éste último, ya que es un wrapper sobre el primero. Solo hay que el código fuente del módulo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
package Spreadsheet::Write;

require 5.008_001;

use strict;
use IO::File;
use Text::CSV;
use Encode;
use Spreadsheet::WriteExcel;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

o... algo más sencillo... hacer caso de lo que pone en las sinopsis de cada módulo.

Pero lo del mensaje de error no lo entiendo... sería interesante ver el texto completo del error.

Comentas lo del cambio de orden de los módulos, pero no debería afectar en nada más que en la importación de funciones que se llamen igual entre varios módulos. Pero por eso te he comentado que te sobran algunos de ellos.
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: Error de perl58.dll al probar archivo pl por línea

Notapor scout » 2009-11-24 20:29 @895

Poniendo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use strict;
#use warnings;
#use diagnostics;
use Term::Menu;
use DBI;
use Carp;
use POSIX qw/ strftime /;
use DateTime::Format::Strptime;
package Spreadsheet::Write;

require 5.008_001;

use IO::File;
use Text::CSV;
use Encode;
use Spreadsheet::WriteExcel;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Da estos errores:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
C:\Documents and Settings\admin>perl c:\perl\informesv15demo.pl
Global symbol "$rows" requires explicit package name at c:\perl\informesv15demo.
pl line 276.
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


y muchas líneas iguales sobre distintas variables... ¿¿??

Y el error: Error al inicial la aplicación porque no no se encontró perl58.dll. La reinstalación de la aplicación puede solucionar el problema... sigue apareciendo... grgrg
Última edición por explorer el 2009-11-25 04:38 @235, editado 1 vez en total
Razón: Ortografía, bloques de código
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Error de perl58.dll al probar archivo pl por línea

Notapor erv-Z » 2009-11-24 20:40 @903

¿Línea 276? ¿Por qué no pones el código entero?
Última edición por explorer el 2009-11-25 04:39 @235, editado 1 vez en total
Razón: Ortografía
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Error de perl58.dll al probar archivo pl por línea

Notapor scout » 2009-11-25 02:07 @130

Ok, lo depuro por un tema de datos internos y lo pongo...
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Error de perl58.dll al probar archivo pl por línea

Notapor explorer » 2009-11-25 04:45 @240

El error Global symbol "$rows" requires explicit package name quiere decir que estás usando una variable que no ha sido declarada en ningún sitio.

Es uno de los efectos del use strict;: con él, estamos diciendo que nuestro programa está escrito (o debería estar escrito) de forma estricta. Eso implica, entre otras cosas, que todas las variables deben ser declaradas antes de ser usadas, bien de forma local con my() o de forma global con our() o importadas desde otros paquetes.

El error de la dll es muy posible que sea debido a la línea require 5.008_001;, ya que en ella estás diciendo que quieres usar esa versión de Perl. Haz la prueba de averiguar qué Perl estás usando, ejecutando perl -V. Lo mas seguro es que se arregle con solo quitar la línea.
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: Error de perl58.dll al probar archivo pl por línea

Notapor scout » 2009-11-25 16:32 @731

Uso la versión 5.10; es la misma que uso en otro ordenador y no da el error ese... es de lo más raro...

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
C:\Documents and Settings\admin>perl -v
This is perl, v5.10.1 built for MSWin32-x86-multi-thread
(with 2 registered patches, see perl -V for more detail)
Copyright 1987-2009, Larry Wall Binary build 1006 [291086] provided by ActiveState http://www.ActiveState.com   Built Aug 24 2009 13:48:26
Perl may be copied only under the terms of either the Artistic License or the   GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl".  If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.

C:\Documents and Settings\admin>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618

Re: Error de perl58.dll al probar archivo pl por línea

Notapor scout » 2009-11-29 18:19 @805

Solucionado... Saqué el Perl v5.10.0, borré la carpeta perl, apagué el ordenador y luego instalé de nuevo...

Al menos ahora no aparece el error...
scout
Perlero nuevo
Perlero nuevo
 
Mensajes: 228
Registrado: 2009-10-28 13:50 @618


Volver a Intermedio

¿Quién está conectado?

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