PDA

Visualizza la versione completa : Problemi con Perl2exe


Claudio Vituzzi
05-10-2004, 20:22
Ho incontrato delle difficoltà ad usare perl2exe (versione di prova 30 giorni) nel compilare alcuni scripts...

I codici che posterò funzionano senza problemi quando "Interpretati"

1) Ho provato a compilare questo codice ma il risultato è una finestra con caratteri incomprensibili:



#!/usr/bin/perl -w

use strict;
use warnings;
use Tk;
use Win32::GUI;
my $hw = Win32::GUI::GetPerlWindow();
Win32::GUI::Hide($hw);

my $main = new MainWindow;
$main->title("THEARTOFWEB");
$main->Label(-text => 'Hello World!')->pack;
$main->Button(-text => 'Quit',-command => sub{exit})->pack;
$main->Frame(qw/-width 300 -height 50/)->pack;

MainLoop;


2) La compilazione viene portata a termine ma se eseguo l'exe del file appena compilato mi dice che non trova "math/bigint/calc" ?????? ma siamo matti????



#/!usr/bin/perl

use strict;
use warnings;
use Spreadsheet::ParseExcel;

my $oExcel = new Spreadsheet::ParseExcel;
my $oBook = $oExcel->Parse('test.xls');

print "FILE :", $oBook->{File} , "\n";
print "COUNT :", $oBook->{SheetCount} , "\n"; # Numero di 'fogli' nel Workbook...
print "AUTHOR:", $oBook->{Author} , "\n";

my $oWkS = $oBook->{Worksheet}[0]; # Primo foglio 'sport'

print "--SHEET:", $oWkS->{Name}, "\n";
print "--Num Row:", $oWkS->{MaxRow}, "\n\n";

my $num_rows = $oWkS->{MaxRow}; # Righe totali nel foglio...

my ($iR,$oWkC);

for $iR (0 .. $num_rows) {
next if $iR == 0; # Skippa la prima riga che contiene i nomi delle colonne...
$oWkC = $oWkS->{Cells}[$iR][0]; print $oWkC->{Val} , " "; # colonna 'A'
$oWkC = $oWkS->{Cells}[$iR][1]; print $oWkC->{Val} , " "; # colonna 'B'
print "\n";
}

my $zz = <STDIN>;
__END__;


O forse sono cose fatte a posta da perl2exe perchè è un trial?

Devo anche devo dire che perl2exe non parte subito se lodigito da terminal ma devo arrivare nella dir che lo contiene.

Aiuto.

LordSaga640
11-10-2004, 23:18
Perl2exe fa un particolare pacchetto con dentro tutte le librerie richieste.

Spesso accadde che librerie richiamano altre librerie usando EVAL, come ad esempio fa DBI che carica i driver del database secondo cosa ti serve.


I moduli che ti dice che mancano devi preventivamente richiamarli con use all'inizio del tuo programma.

Ti dice che non trova math/bigint/calc?


Semplice.
All'inizio del tuo script metti:
use math::bigint::calc;

E così se dovesse continuare.
Fai conto che per use Crypt::RSA ho dovuto includere almeno 20 librerie che perl2exe non trovata.
Ma se fai bene vedrai che va.

ciao :)

Loading