Newsgroup: it.comp.lang.perl
Titolo: Prova efficienza lettura/scrittura file.

Salve sono appena riuscito a provare "Hello Word".
Ma dovendo decidere tra Servlet e Perl
devo testare questo semplice esempio:
spostarisi nella directory "
www.prova.com/
"
aprire per lettura file "DATI.TXT"
Iniziare un loop leggendo una LINEA alla volta
         LINEA=una linea alla volta
         CODICE= estrarre da LINEA la prima subString con separatore ","
virgola.
         CODICE= CODICE +".TXT" (aggiungere ".TXT" )
         spostarsi nella directory "
www.prova.com/day
"
         aprire per "appendere" il file CODICI (variabile a cui è stato
aggiunto .txt)
         appendere LINEA(complete) al file CODICI.
         chiudere il file CODICI.
fine del loop.
chiudere e cancellare il file DATI.TXT
qualcuno sarebbe così gentile da riscriverlo in perl?
Grazie 2000
Fulvio.

 cerchero' un'altra donna dentro ai sogni di Tarzan...

 open CODICI, ">>
http://www.prova.com/day/$codice
;
in questa riga viene aggiunta la dir. all'inizio di CODICI oltreche aperto
il file?
P.s dove ti ho già incontrato (newsgroups), il tuo nome non mi è nuovo!
Grazie ancora,
 Fulvio

il file?
manca la chisura delle " e hai aggiunto un http:// che
rovina un bel po' le cose.
Oha
-- 
"Qualcuno mi spieghi perche' 144 e' l'unico
quadrato perfetto della serie di Fibonacci"

Qualcosa non funziona,
quando aggiungo la riga che apre il file ricevo: " internel server error"
se la tolgo funziona!
#!/usr/bin/perl
#Script: 
upday.pl
use CGI ':standard';
open FOO "< 
www.xtrader.net/DATI.TXT
";
close FOO;
print header('text/plain');
print "Fine, tutto OK?\n";
exit;
//////////////
$codice = shift @_;
 $codice .= '.TXT';
ma questa riga č corretta? Ci vuole il punto prima di  = '.TXT';?
dovrebbe essere aggiunto '.TXT' a $codice, cioč se $codice č uguale a "XXX"
dovrei ottenere "XXX.TXT".
Forse devo settare qualcosa per leggere e scrivere i file?
Grazie,
Fulvio

Acc...
Purtroppo non è quello il prob.
"Http" era una delle varie prove fatte e la virgola solo una dimenticanza
nel copy.
La riga che dovevo postare che non funge è questa : (internal server error)
open FOO "<
www.xtrader.net/DATI.TXT
";
close FOO;
P.s il file esiste!
Ripeto: ma devo settare qualcosa per lavorare sui file?
Bye
Fulvio

"XXX" dovrei ottenere "XXX.TXT".
si, e' giusto, puoi anche usare shift; e basta, @_ e' implicito.
Federico Feroldi

Non commento quello che hai scritto perche' non ne sono in grado!
(Ho iniziato ieri, anzi oggi e non ho un bel mauale in italiano!)
Ma leggendo la guida non so come (c...) sono riuscito a farlo funzionare
cosě:
#!/usr/bin/perl -w
#Script: prfile.cgi
use CGI ':standard';
print header('text/plain');
$codice="../DATI.TXT";
 if (-e $codice) {
 open(IN, "<$codice");
 } else {
  print "$codice - File non trovato\n";
 }
while ($riga=<IN>)
     @_=split /,/,$riga;
     $cod = shift @_;
     $cod .= '.TXT';
     print "$cod\n";
     open(FOO, ">>$cod");
     print FOO $riga;
     close FOO;
}
close IN;
exit;
Una precisazione io sono on-line su server UNIX (linux)
questa riga mi da errore:
open FOO "<DATI.TXT";
devo mettere le parentesi:
open(IN, "<$codice");
ma se metto www. eccetere non trova il file!?
open(IN, "< 
www.xtrader.net/DATI.TXT
" );
Ora per salire di una directory ho usato:
$codice="../DATI.TXT";
mi resta un problema, come aprire un file in una dir. parallela???
Mi sapresti aiutare?
Grazie,
Fulvio

mi resta un problema, come aprire un file in una dir. parallela???
se ho capito bene il tuo tree e' siffatto:
./
    	./X qui si trova la cgi
    	    	./prfile.cgi
    	./
www.xtrader.net
    	    	./DATI.TXT
quindi se da prfile.cgi vuoi accedere a DATI.TXT il path e':
../
www.xtrader.net/DATI.TXT
-- 
Federico Feroldi ~ 
http://www.pixzone.com/

P.s dove ti ho già incontrato (newsgroups), il tuo nome non mi è nuovo!
Mah... it.comp.lang.javascript? it.comp.macintosh?
it.comp.reti.locali? Non saprei.


open FOO "< 
www.xtrader.net/DATI.TXT
";
togli lo spazio, verifica che nella dir corrente esista la dir
"
www.xtrader.net
" e che la cgi abbia diritti per scriverci.


Problema risolto:
open(FOO, ">../prova/a.txt");
Grazie Fulvio.

Problema risolto:
open(FOO, ">../prova/a.txt");
P.s con 
www.eccetera.net/
 non va in nessun caso!?
Grazie,
 Fulvio.