PDA

Visualizza la versione completa : Aiuto esecuzione perl


andrew26
27-01-2005, 19:20
Salve a tutti,
vi espongo il mio problema, allora ho realizzato un programma:

#!usr/bin/perl
# Necessario installare Config-IniFiles-2.21
use Config::IniFiles;

# Il file .ini si deve trovare nella stessa directory del prg
$cfg = new Config::IniFiles( -file => 'http://localhost/cgi-bin/articoli.ini' );
$nomearticolo=$cfg-> val( '001', 'nomearticolo' );
$prezzo=$cfg-> val( '001', 'prezzo' );

print "Content-type: text/html\n\n";
print " $nomearticolo - $prezzo";

se lo compilo e lo mando in esecuzione su Windows funziona, messo on-line no, qualcuno sa dirmi perchè? :dhò: :dhò: :dhò:

GRAZIE

LordSaga640
28-01-2005, 23:28
Il server ha installato il modulo use Config::IniFiles; ?

Come fai a dire che non funziona? Ti da messaggi di errore?

Se sì, quali?

Sono settati giustamente i permessi del file ini?

Claudio Vituzzi
29-01-2005, 01:59
Allora,

prova a far girare questo codice sul tuo server linux:



#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;
use CGI::Carp "fatalsToBrowser";

use Config::IniFiles;

print "Content-type: text/html\n\n";
print "eseguito!\n";

exit(0);

eventualmente se ci sarà un errore ti verrà riportato dallo script in modo chiaro, ad esempio modulo mancante.

In generale, nei tuoi scripts CGI metti sempre in testa i seguento moduli:


use strict;
use warnings;
use diagnostics;
use CGI::Carp "fatalsToBrowser";

Per quanto riguarda il tuo codice ho notato una cosa:


$cfg = new Config::IniFiles( -file => 'http://localhost/cgi-bin/articoli.ini' );

spero che tu sappia che questa riga non funzionerà mai, cambiala invece con:


$cfg = new Config::IniFiles( -file => "articoli.ini");

Credo che il tuo script (per Linux) potrebbe essere quindi modificato cosi':


#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;
use CGI::Carp "fatalsToBrowser";
use Config::IniFiles;

# Il file .ini si deve trovare nella stessa directory del prg
my $ini_file = "articoli.ini";
my $cfg = new Config::IniFiles( -file => $ini_file );
my $nomearticolo = $cfg->val( '001', 'nomearticolo' );
my $prezzo = $cfg->val( '001', 'prezzo' );

print "Content-type: text/html\n\n";
print "$nomearticolo - $prezzo";




se lo compilo e lo mando in esecuzione su Windows funziona, messo on-line no, qualcuno sa dirmi perchè?

Ma mica sul server metti il file compilato?

Spero cmq di esserti stato d'aiuto,

ciao

LordSaga640
29-01-2005, 16:10
$cfg = new Config::IniFiles( -file => 'http://localhost/cgi-bin/articoli.ini' );


Haha, questo proprio non l'avevo visto :D

Loading