Newsgroup: it.comp.lang.perl
Titolo: Novellino in fatto di Perl e Cgi...

Dunque, a molti di voi la risposta sembrerà ovvia, ma per me sarà una totale
sorpresa, ve lo garantisco...
Una volta imparato a fare i programmini in perl (e ne ho appena fatto uno),
come cavolo lo metto su internet? Voglio dire, ho fatto il programma .pl, e
ora voglio l'output di tutto quello che ho fatto su una pagina web .html.
Come si fa? E che relazione c'è col Cgi?
Il mistero s'infittisce : /
Grazie a chiunque mi risponderà. Cercherò un giorno di essere utile a voi ^^
Ciao e Buon Anno! (e finalmente, Buon Nuovo Millennio)
--
Claudio Di Vicino Homepage: 
http://utenti.tripod.it/claudio_di_vicino
E-mail: 
clad...@inwind.it
ICQ#: 27235190

...



Il problema del seguente programma è che, invece di restituirmi tutti i nomi
dell'array, mi restituisce per *ctr* volte (ovvero il numero degli elementi
dell'array) sempre il primo nome...
Probabilmente lascerò stare il perl per ritornare a fare solo il C, ma
giusto per sapere, vorrei conoscere il mio errore : )
#!C:/perl/bin/perl.exe
##############
# 
secondo.pl
 #
##############
# Questo programma si ripromette di:
# 1) Immettere n elementi (20 max) in un array
# 2) Elencare i nomi immessi
# begin
print "Programma per la gestione di un array\n\n";
print "Creato e progettato da Claudio Di Vicino\n";
print "E-mail: cladivic\@
inwind.it
\n\n";
print "Di quanti elementi vuoi che sia composto l'array? \n";
$ctr = <STDIN>;
chomp ($ctr);
@elem = (" ");
print "Elemento n.1: ";
$elem[0] = <STDIN>;
$i = 2;
while (($i - 1) != $ctr)
 {
 print "Elemento n.$i: ";
 $elemento= <STDIN>;
 chomp ($elemento);
 push (@elem, $elemento);
 $i = $i + 1;
 }
print "\nImmissione degli elementi completata con successo";
print "\nElenco degli elementi immessi\n";
$i = 1;
while (($i - 1) != $ctr)
 {
 print "Elemento n.$i: $elem[i]\n";
 $i = $i + 1;
 }
print "\nElenco completato\n\n";
print "Fine del programma\n";
print "(Premi invio per uscire)";
$invio = <STDIN>;
E questo è tutto : /
(p.s. oggi pomeriggio scriverò il messaggio su .www.cgi se faccio in tempo,
comunque Linux è difficle che possa installarlo, perchè ho ancora un P133 e
ho poco spazio sulla macchina per mettere PURE Linux oltre al mio
infaticabile (ma inadatto probabilmente) winzozz 98)


Se ti piace vai pure avanti con il Perl, io non ti ho consigliato il C !!!
Ho detto: stai attento a non perdere tempo utile a laurearti !
Allora veniamo al tuo programma:
----------------
#!C:/perl/bin/perl.exe
##############
# 
secondo.pl
 #
##############
# Questo programma si ripromette di:
# 1) Immettere n elementi (20 max) in un array
# 2) Elencare i nomi immessi
# begin
print "Programma per la gestione di un array\n\n";
print "Creato e progettato da Claudio Di Vicino\n";
print "E-mail: cladivic\@
inwind.it
\n\n";
print "Di quanti elementi vuoi che sia composto l'array? \n";
$ctr = <STDIN>;
chomp ($ctr);
# @elem = (" ");
# print "Elemento n.1: "; # ERRORI
# $elem[0] = <STDIN>;
$i = 0;
while ($i < $ctr)  # ERRORE
{
print "Elemento n.".($i+1).": "; # ERRORE
$elemento= <STDIN>;
chomp ($elemento);
push (@elem, $elemento);
$i = $i + 1;
}
print "\nImmissione degli elementi completata con successo";
print "\nElenco degli elementi immessi\n";
$i = 0; # ERRORE
while ($i < $ctr) # ERRORE
{
print "Elemento n.".($i+1).": $elem[$i]\n"; # ERRORE
$i = $i + 1;
}
print "\nElenco completato\n\n";
print "Fine del programma\n";
print "(Premi invio per uscire)";
$invio = <STDIN>;
-------------------------------
Dove ho messo errore c'era un errore, ora corretto, ma.....
Ora funiziona, ma devo ammettere che NON e' molto ben strutturato:
Dai una occhiata a questo che ho fatto al volo:
-------------------
use strict;
my $times;
my @array;
my $i;
print "Di quanti elementi vuoi che sia composto l'array ?\n";
$times=<STDIN>;
for($i=0;$i<$times;++$i){
 print "Elemento ".($i+1)." : ";
 $array[$i]=<STDIN>;
}
print "\nImmissione degli elementi completata!\n\n";
for($i=0;$i<$times;++$i){
 print "Elemento ".($i+1)." : ";
 print $array[$i];
}
print "Fine programma!\nPremi invio per uscire...";
$i=<STDIN>;
-----------------
Devo fare un precisazione: con
#!C:/perl/bin/perl.exe
Non andra' mai su internet !!! E' vero i CGI necessitano che tu specifichi i
l path dell'interprete perl, ma quello del server, non del tuo PC !!!
D'altra parte per i programmi perl (non cgi) non serve tale specifica !!!
Per finire il mio programma, togliendo use strict; e le my (dichiarazioni
variabili) sarebbe stato molto piu' corto (come puoi vedere). Tuttavia credo
sia buona norma usare use strict; che forza a dichiarare tutte le variabili
(come in C) e quindi le my che le dichiarano! Fai tu la tua scelta. Di
solito si programma in modo piu' elegante e spargendo meno le variabili si
crea codice piu' facile da modificare in futuro.
Alex

 Alex
Sei un programmatore nato ^^ (bè non è vero, programmatori si diventa... ma
non spargiamo la voce)
Ciao e grazie mille di tutto!!!
Con questo passo e chiudo sul newsgroup it.comp.lang.perl (però il Perl lo
terrò lo stesso installato sul mio comp.).
Ah comunque immaginavo ovviamente che #!etc etc doveva essere riferito al
perl del server, e non quello del Pc... altrimenti dovrebbero averlo tutti
l'interprete perl, e tutti in quella path (sai che ridere gli utenti che non
hanno Windowz...).
Ancora danke!!!
E Buon Anno a tutto il newsgroup! (Felice nuovo MillenniuM [by MS])