mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.perl
Titolo: principiante :-(

Scusate la banalità, ma ho cominciato da poco...
Ho una pagina html con due frames che si chiamano "uno" e "due".
Il frame "uno" contiene la form che richiama il cgi.
Ho scritto nel cgi:
print "ciao1\n";
e questo viene restituito su STDOUT, cioè sempre al frame "uno" (e fino a
qui...OK!).
Ma se volessi inserire nel cgi anche un secondo print che restituisca
un messaggio sul frame "due", cosa devo scrivere?
Finora sono riuscita a "direzionare" le risposte del cgi solo
richiamandolo con <form action=.... TARGET=due metod=post>,
ma invece vorrei che lo stesso cgi rispondesse su entrambi i frames della
pagina.
Grazie dell'aiuto.
Ciao.

pagina.
Non combini, un CGI puo` inviare il suo output solo ad una frame, che puoi
decidere anchea livello di CGI utilizzato il tag:
Window-target: nomeframe
(funziona solo con Netscape).
L'unica soluzione e` chiamare lo script con target=_top (pulire cioe' il
frameset). Il CGI generera` un frameset nuovo in cui richiama, nei tag
<FRAME>, altri script CGI a cui passa gli opportuni parametri.
	A presto, Michele.
-- 
Michele Beltrame
mi...@io.com
http://www.io.com/~mick/

pagina.
Non si puo' fare... non direttamente.
ma se spari nella frame "uno" anche il JavaScript che (lanciato dal
<BODY ... onLoad="...">) scrive su "due", allora si puo' fare ;-)
------
bale...@dada.it
 
http://zap.to/balestra
  ICQ#:14303012
" Ora mai che i baci tuoi piu' non mi sazian
  cerchero' un'altra donna dentro ai sogni di Tarzan... "

Newsgroup: it.comp.lang.perl
Titolo: CRON, questo sconosciuto

Ciao ragazzi,
da qualche parte ho letto che usando un comando chiamato CRON si può avviare
uno script in perl e fargli eseguire delle funzioni.
Esiste qualche sito o qualche anima pia che mi spieghi come usare sto
comando e come configurare lo script?
Grazie

 wrote in message
8pmd34$a9q$1...@nread1.inwind.it...

Su qualunque macchina unix:
  man crontab
ciao, marco
--
Marco Cacchiani                                
e-mail:ma...@sirius.pisa.it
Public pgp key:         
http://www.sirius.pisa.it/marco/pgp_public_key.asc
Sirius Servizi Informatici                     e-mail: 
in...@sirius.pisa.it
Parco Teatro Pasolini, 1                       Phone:  +39 (50) 865120
I-56019 - Vecchiano                            Fax:    +39 (50) 860260
(Pisa - ITALIA)                                
http://www.sirius.pisa.it/

da una shell di Unix scrivi "man crontab". Ti spiega tutto li.
In breve cron va a leggere sul di file configurazione /etc/crontab (o
simile) quando lanciare determinati programmi o script.
Il programma crontab ti permette di modificare il file su etc. NON
MODIFICARLO DIRETTAMENTE.
Buon divertimento.
Aekidna
In 8pmd34$a9q$
1...@nread1.inwind.it
, Fra, 
mich...@tiscalinet.it
, il


MODIFICARLO DIRETTAMENTE.
In realta' se hai la password da root e *sai bene quello che stai facendo* puoi
anche editarlo a mano, giuro che non muore nessuno :)
PS: siamo decisamente OT....
-- 
Saluti,
Giancarlo




 prova a guardare su man crontab.
Non per polemizzare ma per la precisione:
minuti  ore  giorno del mese  mese  giorno della settimana
:-)
Ciao
M.
-- 
:wq
Newsgroup: it.comp.lang.perl
Titolo: virgola per i decimali

Ciao a tutti, 
cercando in rete ho trovato che per usare la virgola come punto decimale 
(devo rappresentare delle valute) posso fare come nell'esempio, ma così 
facendo ho scoperto che i valori che passano per sprintf "perdono" i 
decimali:
#!/usr/bin/perl
use POSIX 'locale_h';
setlocale LC_ALL, "";
$a=1.50;
$b=sprintf("%.2f",1.5);
$c=sprintf("%.2f",1);
print "a=$a\nb=$b\nc=$c \n";
print "Esatto: $a+$c=",($a+$c), "\n";   # Stampa 2,5
print "Errato: $b+$c=",($b+$c), "\n";   # Stampa 2
Questo comportamento è corretto?
Grazie,
Matteo

Matteo wrote:

Certo, e se avessi usato:
use warnings; # oppure #!/usr/bin/perl -w
ti saresti subito accorto della causa ;-)
Il valore restituito da sprintf e messo dentro $b, ovvero la _stringa_ 
"1,50", non è un valore numerico sintatticamente valido in Perl (né in 
alcun altro linguaggio che io conosca).
Pertanto quando $b viene utilizzata nell'espressione $b+$c, il suo 
valore viene /numificato/ in 1 (la parte dalla virgola in poi viene 
scartata, non essendo interpretabile in contesto numerico - e viene 
generato un warning).
Tornando all'esempio che hai trovato in rete, è da fucilazione alle spalle.
Non dovresti mai e poi mai, per nessuna ragione, prendere il risultato 
di una sprintf e poi utilizzarlo in una espressione aritmetica.
I calcoli si fanno sempre con i valori nativi; solo alla fine, quando 
devi mandare i dati in output, puoi usare sprintf/printf.
P.S.
Oltre a "use warnings;" manca anche "use strict;" che è altrettanto 
importante.
Ciao.

Ok, grazie dei consigli+spiegazione

 Ok, grazie dei consigli+spiegazione
Di nulla.
Dimenticavo: se devi formattare delle valute, ti consiglio di usare il 
seguente modulo CPAN:
http://search.cpan.org/dist/Number-Format/
è molto più flessibile e potente di sprintf + locale (anch'esso da usare 
dopo i calcoli, non prima).
Ciao!
Newsgroup: it.comp.lang.perl
Titolo: Esecuzione su pagina web

Leggo gli esempi riportati alla pagina 
http://www.html.it/cgi/05.htm
Ricopio pedestremente l'esempio dello script che restituisce il nome del
Browser utilizzato e lo memorizzo sul mio server (Apache su Linux)
Quali sono i passi successivi?
Nella pagina html dove voglio vedere il risultato con quale TAG devo
richiamare lo script.
Sul mio server girano correttamente altri perl quali "
formmail.pl
" o
"
counter.pl
" , ma uno usa "form" e l'altro "img"
Penso che la mia sia una lacuna da fondamentali di Html ma ho navigato
invano cercando una risposta nei vari manuali on-line disponibili
Grazie per l'aiuto.
(P.S. Questa prova è propedeutica al bisogno di scrivere un perl da inserire
nella mia homepage che intercetti l'IP del visitatore e verificato un certo
valore o serie di valori esegua il link ad una pagina piuttosto che a
un'altra. Esiste qualcosa di già pronto?)


<input type=submit NAME=SUBMIT VALUE=INVIA>
</form>
Il campo <input> con type=submit, crea il "bottone" per l'invio del form.
						l.f.
--------------------------------------------------------------------------
       -- )     Luca Fini                            Tel: +39 055 2752 307
 ___    |\      Osservatorio Astrofisico di Arcetri  Fax: +39 055 2752 292
/   |   | |-_   L.go E.Fermi, 5 +-----------------------------------------
(___|___//___)  50125 Firenze  /   WWW: 
http://www.arcetri.astro.it/~lfini
 (_)      (_)   Italia        / e-mail: 
lf...@arcetri.astro.it
-----------------------------+--------------------------------------------
                              In a world without fences - who needs GATES?

richiamare lo script.
Nel punto odve vuoi sia inserita la stringa inserisci il seguente codice:
<!--#exec cgi="/cgi-bin/
nomescript.pl
"-->
Attento pero` che il tuo server deve supportare i Server Side Include:
forse dovrai rinominare la pagine in *.shtml.
Se non puoi utilizzare gli SSI, non ti resta che far generare l'intera
pagina da uno script CGI, cosa che comunque dovrai fare per il tuo
script che intercetta l'IP e visualizza un contenuto diverso a seconda
del caso.
	Michele.
-- 
Michele Beltrame
mi...@io.com
http://www.io.com/~mick/
Newsgroup: it.comp.lang.perl
Titolo: trovare i giorni festivi

Ciao,
in uno script perl avrei bisogno di sapere se un determinato giorno
è festivo oppure no. esiste qualche cosa di già fatto?
grazie
--
Ranger

 è festivo oppure no. esiste qualche cosa di già fatto?
Il modulo Date::Manip dovrebbe fare a caso tuo...
Mette a disposizione questa funzione:
---8<---8<---8<---
Date_IsWorkDay
  $flag = Date_IsWorkDay($date [,$flag]);
    This returns 1 if $date is a work day. If $flag is non-zero, the time
is checked to see if it falls within work hours. It returns an empty string
if $date is not valid.
------------------
Altrimenti, se non vuoi usare moduli esterni, la funzione localtime fra le
altre cose restituisce anche il numero del giorno della settimana (con 0 =
Domenica). Purtroppo localtime accetta (mi pare) come parametro i secondi
da una certa data (01 Gennaio 1970, mi pare o qualcosa di simile) e
dovresti convertire la data in questo modo prima di passargliela.
Ciao,
-- 
+--------+ | ASCII ribbon campaign ( ) | 
www.autistici.org/kral
|  kral  | |  - against HTML email  X  |
+--------+ |              & vCards / \ | my gpg id = 0x7C946947

 Il modulo Date::Manip dovrebbe fare a caso tuo...
Vero, ci sono pero' delle festivita' che variano da nazione a nazione, di
anno in anno.
Non ti fidare cecamente del modulo quindi.
 Raffaello

 anno in anno.
Penso che intendesse capire se un giorno è feriale o festivo...
Forse non ho capito bene io, allora...


 Forse non ho capito bene io, allora...
Niente, sono un monazza! :)
Pensavo che per festivo intendesse solo la Domenica.
Scusate...
Cmq, purtroppo, credo nessun modulo abbia *tutte* le festività. Anche
perché a volte sono addirittura a livello "comunale". Qui a Vicenza, ad
esempio, si stà a casa l'8 settembre, festa della Madonna di Monte Berico.
A Padova, mi sembra, si sta a casa a S. Antonio. Per le feste maggiori,
cmq, penso vada bene anche Date::Manip, al massimo contatta l'autore per le
eventuali modifiche/migliorie.


Non ti fidare cecamente del modulo quindi.
Il modulo Date::Manip mi sembra ben documentato. Io, in prima istanza, mi
fiderei della documentazione.
Ciao.



Immaginavo ci fosse una opzione del genere, ma ho voluto avvertire che
installare il modulo _e_basta_ non e' sufficiente portare alla
risoluzione del problema.
 Raffaello

 ha scritto nel messaggio
news:fa4fn017ho60v4ekr...@4ax.com...

Immaggino che il modulo non risolva il problema della Pasqua  o meglio della
Pasquetta (visto che Pasqua e' comunque Domenica) che cade ogni anno in un
giorno diverso.
Percio' o  ogni anno si modifica il file di configurazione o si inserisce un
calcoletto:
Es:
http://www.arcturus.len.it/calcolo_della_pasqua.htm

giorno diverso.
Sissignore sì, il modulo risolve il problema della Pasqua e delle festività
mobili legate ad essa. Così come consente di definire festività mobili del
genere "primo mercoledì del mese" e così via.
Non calcola direttamente le fasi lunari, ma forse si può integrare con il
modulo Astro::MoonPhase.
Ciao.
P.S. Ma la documentazione la leggo proprio solo io?
Newsgroup: it.comp.lang.perl
Titolo: Come Istallare MySQL sul server?

Sono alle primissime armi con il mondo Web.
Non me la cavo niente male con il Visual Basic e sono in grado di apprendere
abbastanza facilmente la filosofia dei vari linguaggi.
Devo gestire un database di una sola tabella che deve essere interrogato da
un  sito web.
Ho visto, in vari esempi, che è abbastanza semplice comporre ed inviare al
server query sql e ricevere risposte.
Il problema è che non so assolutamente nulla (e a dir la verità ci ho capito
poco) di come devo fare per istallare sul server del mio sito un server di
database.
Mi hanno parlato di MySql ma non so da dove cominciare.
C'è qualche anima pia che ha voglia di indicarmi passo passo la strada?
Grazie infinite a tutti quelli che ci proveranno!
Guglielmo (
g...@libero.it
)

 ha scritto nel messaggio
news:HDlO5.19722$BF.6...@news.infostrada.it...

Newsgroup: it.comp.lang.perl
Titolo: namespace

Ciao,
esiste un modo per cancellare i riferimenti di una funzione all' interno di 
un namespace ?
Grazie
Andrea 

 un namespace ?
Non sono sicuro di aver capito. Qualcosa tipo:
  sub foo { return 42; }
  print foo(),"\n";
  delete %main::{foo};
  eval q{print foo(),"\n"} or print "Errore: $@\n";
che scrive:
  42
  Errore: Undefined subroutine &main::foo called at (eval 1) line 1.
Alcuni problemi:
- se hai un @foo o un $foo, ti cancella anche quelli
- l'eval serve, altrimenti il puntatore alla sub viene agganciato a
  tempo di compilazione. Non serve se la sub non è dichiarata nello
  stesso file, ad es. se è importata da un modulo
Ma che devi fare?
-- 
  dakkar
  sono su PerlMonks.org, 
use.perl.org
, PAUSE/CPAN

<dak...@nautilus.blackbit.lan> ha scritto nel messaggio 
news:87k6dxg...@nautilus.blackbit.lan...

Ciao,
non riesco a fare: delete %main::{foo};
mi ritorna un errore di sintassi.
Comunque provo a spiegare quello che vorrei fare,
ho una directory, dentro questa directory ho una serie di file
che sono delle librerie, tutte queste librerie contengono una
sub (runcheck) che si chiama nello stesso modo per tutte le librerie.
Ora io devo importare le librerie senza sapere quali sono sono
i loro nomi, questo lo faccio con opendir e require.
Il problema e' che dopo qualche esecuzione mi ritrovo
a chiamare la sub runcheck relativa sempre alla stessa libreria
anziche' essere rimpiazzata dalla libreria che viene importata
nella iterazione corrente.
Aspetto suggerimenti...
Andrea
PS: scusate se sono stato un po' contorto

 nella iterazione corrente.
Di nuovo: come sono fatte queste librerie?
Io farei qualcosa del genere:
in libs/Coso1.pm:
   package Coso1;
   sub runcheck { ... }
in libs/Coso2.pm;
   package Coso2;
   sub runcheck {....}
etc.
poi, per caricarle:
   @libs=glob('libs/*.pm');
   for my $libfile (@libs) {
      my ($libpackage)= ($libfile =~ m{/(\w+)\.pm$});
      next unless $libpackage; # elimino i nomi sbagliati, ce ne fossero
      do $libfile;
      "${libpackage}::runcheck"->();  # la chiamo per nome, col package


<dak...@nautilus.blackbit.lan> ha scritto nel messaggio 
news:87irteg...@nautilus.blackbit.lan...

per farla breve quest' ultima riga e' quello che mi mancava,
ovviamente non mettendo i doppi apici avevo un errore di sintassi,
Grazie mille
Andrea
Newsgroup: it.comp.lang.perl
Titolo: Stringhe

Ciao a tutti,
c'č in perl un modo di far la sottrazione tra stringhe?
Cioč: data una stringa $a e una $b che č parte di $a c'č un modo
per togliere $b da $a?
P.S. Che manuali/guide mi consigliate per programmare OO in perl?
Grazie a tutti

 P.S. Che manuali/guide mi consigliate per programmare OO in perl?
Il libro di Damian Conway e` molto bello:
  Damian Conway
  "Object Oriented Perl"
 
http://www.perl.it/documenti/bibliografia/2.html
ciao,
S.
-- 
Stefano Rodighiero      |  
http://larsen.perlmonk.org
mailto:
lar...@perl.it
   |  
http://www.perl.it

 Il libro di Damian Conway e` molto bello:
Aggiungo:
- perlboot (perldoc perlboot da riga di comando o [1] e [2] in italiano)
- perltoot (perldoc perltoot da riga di comando o [3])
- perltooc (perldoc perltooc da riga di comando o [4])
- perlobj (perldoc perlobj da riga di comando o [5])
- perlbot (perldoc perlbot da riga di comando o [6])
[1] 
http://www.perldoc.com/perl5.8.4/pod/perlboot.html
[2] 
http://pod2it.sourceforge.net/pods/perlboot.html
[3] 
http://www.perldoc.com/perl5.8.4/pod/perltoot.html
[4] 
http://www.perldoc.com/perl5.8.4/pod/perltooc.html
[5] 
http://www.perldoc.com/perl5.8.4/pod/perlobj.html
[6] 
http://www.perldoc.com/perl5.8.4/pod/perlbot.html

Newsgroup: it.comp.lang.perl
Titolo: vim e perl

Salve volevo sapere come posso adattare vim con il perl
nel senso che la sintassi colorata è presente ma non la formattazione del
testo.
GRazie
Fabrizio 
--
Secondo alcuni autorevoli testi di tecnica di aeronautica, il 
calabrone non può volare, a causa della forma e del peso del 
proprio corpo in rapporto alla superficie alare.
Ma il calabrone non lo sa e perciò continua a volare.
                                               Igor Sikorsky

testo.
Uhm ?
Formattazione del testo in che senso ?
L'identazione ?
-- 
       ¥ 
      |†|
     /    \         la scusa giusta al momento giusto : l'alcool
    |      |        non ho potuto fare i compiti : stavo bevendo
J  |  &  |  D   domani non posso andare al lavoro : devo bere
    |      |        scusa non posso sposarti : la vite mi chiama
    '-----'     e-mail: lakyba(at)
tin.it

Newsgroup: it.comp.lang.perl
Titolo: $dbh->disconnect

Qualcuno sa cosa provoca NON fare il disconnect del  DB, io uso un database
Mysql, e non ho avuto problemi, ma mi piacerebbe capire cosa puo' succedere
se qualcuno premesse stop e cambiasse pagina nel mezzo di una $sth->execute
lasciando il db aperto.
Inoltre il comando die chiude le eventuali connessioni ?
Grazie!

A parte un po' di lamentele da parte del Perl, tutto viene messo a posto al
termine dello script (die, exit...) Anche se ovviamente è meglio metterlo
che non metterlo!
Ben più grave è dimenticare un $sth aperto o dimenticare di fare una commit
(almeno sotto Oracle...)
Marco Cecconi
Inferentia SpA
Marco wrote in message ...

Newsgroup: it.comp.lang.perl
Titolo: Fermare cgi

come fermo il cgi quando l'utente lascia (chiude o cambia) la pagina che lo
ha lanciato in modo che non continui a girare inutilmente?....  (mi
servirebbe moltissimo)
Grazie 1000
Ciao:)

 servirebbe moltissimo)
Non capisco ... se l'utente sta 10 minuti su una pagina, tu lasci un CGI
in esecuzione per 10 minuti ?
Posso sapere la ragione ?
Forse puoi utilizzare un'altra strategia ...
 Raffaello

 Forse puoi utilizzare un'altra strategia ...
non credo!?... dimmi tu.
Ciao Grazie

On Fri, 16 Aug 2002, Oxy wrote:

Mi ricordo di aver seguito alcune partite di calcio dei mondiali sui
siti di Kataweb e Repubblica. Li' la pagina veniva aggiornata ogni
tot secondi (120 o poco piu').
Forse questa sarebbe la strategia giusta ...
 Raffaello

 ha lanciato in modo che non continui a girare inutilmente?....
Mmmh... che io sappia un CGI nasce e muore con il browser.
Quindi se il client abbandona la sessione, il CGI automaticamente smette
l'esecuzione.
A meno ché non si tratti di un non-cgi eseguito in background...
esempio:
$var = `/usr/bin/comando`;
in questo caso il CGI muore, ma "/usr/bin/comando" resta in esecuzione
finché non finisce il suo lavoro.
Ciao
Guido.

 finché non finisce il suo lavoro.
 non sono un esperto... ma ti assicuro che sul mio server i cgi vanno per
ore/giorni se non terminano per qualche motivo.. pensa che io uso un cgi
sempre in esecuzione (lanciato con il browser) per gestire tutti gli eventi
a ore prestabilite, il cgi termina solo se cancello un file ( il cgi prima
di ripetre il ciclo verifica che ci sia il file altrimenti esce dal loop ) .
Cmq anche nel caso specifico ho gia' fatto dei test e ti assicuro che non
terminano!
Ciao

 ha scritto nel messaggio
news:Pine.OSF.4.31.020816...@harry.molgen.mpg.de...

si ma come in push, cioe' la connessione era aperta e il server ricaricava
la pagina (quello che vorrei fare io)
oppure era la pagina a fare un reload?.. in questo caso e' semplicissimo...
ma non mi va bene, non voglio aprire  una connessione ogni secondo ( solo
per connettersi si perderebbero alcuni secondi ) per verificare se ci sono
aggiornamenti, io voglio mantenere la connesione aperta inviando gli
aggiornamenti quando ci sono. Ho fatto un test e funziona... pero' mi sorge
un dubbio: se la connessione rimane inattiva per troppo tempo non sara' il
server a chiuderla?
Ciao

 server a chiuderla?
Il caro vecchio Timeout.... :(
 Raffaello

 Il caro vecchio Timeout.... :(
Perfetto!.. da una parte avrei il cgi che non si ferma.. dall'altra il
server che taglia la connssione! :-((
Mah!
Ciao



Mi sa che per le tue esigenze e' necessaria una applet eseguita sul
client.
Raffaello

 ha scritto nel messaggio
news:Pine.OSF.4.31.020820...@harry.molgen.mpg.de...

infatti questo servirebbe proprio ad aggiornar l'applet!
ciao
Newsgroup: it.comp.lang.perl
Titolo: Problema con semplice programma

Ho bisogno di fare un semplice programma che associando ad ogni lettera
alfabetica un
valore numerico (partendo da 1) mi faccia la somma dei singoli valori delle
lettere di un nome inserito.
Ho pensato di creare un ash del tipo ( %alfnum = ( a =>1
b =>2 eccc
 poi predere dallo stadard input il nome epoi?????
Mi sapreste dare un aiuto magari con un semplice listato?

  poi predere dallo stadard input il nome epoi?????
Poi split('',$nome) ti torna l'array composto dai singoli caratteri
della stringa $nome, e (con una qualsiasi delle tante forme
di ciclo a piacere) ci applichi su la funzione suddetta e fai la
sommatoria desiderata.
Ad esempio:
    @n = map {ord($_)-ord('a')+1}, split(/[^a-z]*/,lc $nome);
combina concisamente parecchie di queste operazioni: dato il
$nome, lo rende minuscolo (con lc), lo spezza lettera per
lettera togliendo anche di mezzo le non-lettere, mappa ogni
lettera al relativo codice da 1 a 26, e depone il risultante
array di numeretti in @n -- ti resta solo da sommare (con
uno qualsiasi degli svariati modi di fare o implicare cicli).
Un altro dei tantissimi modi di fare lo stesso lavoro:
    $tot=0;
    for (split('',lc $nome)) {
        next unless /[a-z]/;
        $tot += ord($_)-ord('a')+1;
    }
Qui l'array dei numeri non e` esplicitamente costruito,
bensi` ciascun numero viene sommato via via; inoltre,
giusto per mostrare un altro approccio, ho scartato le
non-lettere con un esplicito "next unless" piuttosto che
non filtrarle via come parte dello split.
    $nome =~ tr/a-zA-Z\000-\377/\001-\032\001-\-032/d;
Questo e` un approccio abbastanza diverso, imperniato 
su di una traslitterazione.  Tutte le lettere, minuscole e
maiuscole, sono trasformate nei caratteri ottali da
1 a 26, e tutti gli altri caratteri sono eliminati.  Dopo di
che,
    $tot=0;
    for(split('',$nome)) {
        $tot+=ord($_);
    }
fa la sommatoria richiesta.
Alex

 wrote in message
news:82glbt$pc1$1...@serv1.iunet.it...
grazie per il consiglio!
Sai consigliarmi del materiale on line per studiure il perl come si deve! Ho
il libro di L.wall Programmare in perl! ma credo che io abbia bisogno per
imparare di esempi pratici! Problema e loro risoluzione!! Ok fammi sapere

     @n = map {ord($_)-ord('a')+1}, split(/[^a-z]*/,lc $nome);
                                   ^
Non ci va la virgola, ad es.
  $sum += $_ for map {ord($_)-ord('a')+1} split(/[^a-z]*/,lc $nome);
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 wrote in message news:82gu55$9ib$1...@lacerta.tiscalinet.it...

Mah, prova il libro "Perl Cookbook", dovrebbe essere appunto
una gigantesca collezione di esempi pratici.
Sotto 
www.perl.com
 trovi tanti ma tanti link in rete (ma
non credo ci sia l'intero cookbook:-).
Alex
Newsgroup: it.comp.lang.perl
Titolo: creare una nuova connessione

ciao,
scusa, ma è già parecchie ore che sto cercando sulla documentazione senza
trovare la risposta.
La domanda è:
C'è un modo per evitare o limitare il tempo per questa istruzione?
$sock = IO::Socket::INET->new(PeerAddr => '
52.178.56.89:82
',Timeout=>3);
Se il client che tento di chiamare non è connesso, ho visto che si blocca
più di 20 secondi.
Non esiste un modo del tipo:
- Avvio la richiesta di connessione
- Faccio qualcosa
- Controllo se la richiesta è andata a buon fine
Oppure se non è possibile in questo modo, far sì di limitare il tempo
massimo a 4-5 secondi. Ho visto che Timeout non serve per quello che
richiedo.
Grazie in anticipo, ciao

Ho trovato la soluzione.
E con questa soluzione ho fatto un rapidissimo port scanner per le prime 300
porte di localhost.
Il tutto funziona in pochi secondi.
Il codice è bruttino ma mi serviva solo per provare se il metodo funzionava.
Ciao
use IO::Socket::INET;
for ($x=1; $x<=2000; $x++) {
undef $SockTest;
$SockTest = IO::Socket::INET-> new(
 Proto  =>  'tcp',
);
my $ioctl_val = 0x80000000 | (4 << 16) | (ord('f') << 8) | 126;
my $set_it = "1";
ioctl ($SockTest, $ioctl_val, $set_it);
$SockTest-> connect( $x, inet_aton("127.0.0.1") );
$ciao{$x}=$SockTest;
}
print "aspetto 2 secondi\n";
sleep 2;
for ($x=1; $x<=2000; $x++) {
$rin="";
vec($rin,fileno($ciao{$x}),1) = 1;
print "$x è aperta\n" if select(undef,$rin,undef,0);
delete $ciao{$x};
}
print "fine\n";
<stdin>;

Newsgroup: it.comp.lang.perl
Titolo: foo

non è nulla di importante (spero):
"foo"
continuo a trovare questa parola nei testi su perl (della O'Reilly, ma
questo è secondario, penso)
cosa vuol dire. penso che sia l'equivalente di "pippo" (i miei colleghi
ed io abbiamo questa abitudine :-)
ma in inglese, che cosa vuol dire?
nulla di importante, come vedete
ciao, antonio

 cerchero' un'altra donna dentro ai sogni di Tarzan...
Newsgroup: it.comp.lang.perl
Titolo: lettura/scrittura... boh?

Intanto mi scuso per l'essere così assillante e per quanto posso leggo su
perldoc.com
.
cmq sia, io ho la necessità di aprire un file e sostituire per delle righe,
che cominciano in un certo modo, la parte finale con una variabile... non è
molto chiaro, vero? Ok, facciamo un esempio, il file è così scritto (non è
proprio così...):
pippo /Pippo1 Pippo2 Pippo3 Pippo4 /E
cacio /Cacio1 Cacio2 /E
stela /Stela1 Stela2 Stela3 /E
i nomi sono inventati qui e gli spazi sono delle tabulazioni. Le uniche cose
vere sono le /E alla fine di ogni riga e la / tra il nome della linea e
quello che c'è dentro.
Io ho i nomi delle linee da cambiare in un array
@array =('pippo', 'stela')
e in input ho il nome da aggiungere alla riga pippo e alla riga stela, per
esempio:
$nome1='pippoide'
$nome2='barbatrucco'
Quello che voglio è aprire il file, leggerlo, sostituire alla riga che
comincia con $array[n] la stessa riga con alla fine il nome che ho scelto,
nella fattispecie
pippo /Pippo1 Pippo2 Pippo3 Pippo4 pippoide/E
diventa
pippo /Pippo1 Pippo2 Pippo3 Pippo4 /E
e
stela /Stela1 Stela2 Stela3 /E
diventa
stela /Stela1 Stela2 Stela3 barbatrucco /E
Ne ho provata qualcuna ma per ora mi si aggiunge (in maniera poi neppure
corretta) la linea cambiata alla fine del file, senza modificare quelle che
voglio io...
come fare?
dawe
--------------------------------
Inviato via 
http://usenet.libero.it

voglio io...
Qesto non è chiaro. Stai cercando di modificare un file "sul posto"? Non
funziona, o non funziona come pensi che funzioni, o è in genere inutile o
non conveniente farlo funzionare come pensi che debba funzionare.
Quello che devi fare e leggere da un file e scrivere su un nuovo file, e
alla fine cancellare eventualmente il precedente:
    my %sostituisci = (
           'pippo' => 'pippoide',
           'stela' => 'barbatrucco',
            );
    my $id;
    open HIN, "< input.txt";
    open HOUT, "> output.txt";
    while (<HIN>) {
        ($id) = (/^([^\t]+)/);
        if (defined $id and exists $sostituisci{$id}) {
            s|\t/E$|\t$sostituisci{$id}\t/E|;
        }
        print HOUT $_;
    }
    close HIN;
    close HOUT;
Se proprio proprio ti serve una sostituzione sul posto all'interno del
file, dai invece un'occhiata al modulo Tie::File.
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: Contatore

Ciao a tutti,
mi rivolgo a voi per un piccolo quesito. Ho appena comprato uno spazio web
per cotruirmi un piccolo sito. Ora, io conosco poco di programmazione per
web, ma ho capito che il server supporta Perl (utilizza Apache, Unix, se
servono queste informazioni...): avrei bisogno di un contatore da inserire
in ogni pagina che mi conti quanti accessi ci sono (compresi quelli del
reload della pagina). Ho provato a guardaere in giro su diversi siti (tipo
www.perl.com
 ), ma non ho trovato (stranamente) nulla, e quel poco che ho
trovato non ho capito come farlo funzionare. Siccome non credo sia una cosa
troppo complicata, chiedo se qno č disposto a aiutarmi, suggerendomi il
codice e come farlo funzionare.
Spero di non chiedere troppo.
Grazie
Frank

codice e come farlo funzionare.
Questo è il blocco che utilizzo nella home page, per fare quello che
dici tu bisognerebbe inserirlo in ogni pagina e farlo puntare sempre
allo stesso file, che in questo caso deve esistere già.
	{
	open(FILE_COUNT, "+<$count.txt");
	$count = <FILE_COUNT>;
	$count++;
	seek(FILE_COUNT, 0, 0);
	print FILE_COUNT $count;
	close FILE_COUNT;
	}
E' molto semplice ed aggiorna solo il contatore anche quando aggiorni.
Spero possa esserti utile.
PS: è una delle prime routine che ho scritto quando ho iniziato a
studiare e vi giuro che prima di incollarla qui faceva ancora più
schifo, c'erano cose assurde ^__^.
Si può migliorare ulteriormente la routine?
-- 
http://www.pigmalion.youngwind.com
 pigmalion network
http://www.pigmalion.youngwind.com/perl/
 appunti Perl
-- 
Posted from 
relay4.inwind.it
 [212.141.53.75] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

...ma se vi si accedono in due contemporaneamente ti cancella il file?
e come lo inserisci  nelle pagine?
grazie ciao

e come lo inserisci  nelle pagine?
io lo uso solo per la home page che č generata al volo da una CGI,
quindi il codice č semplicemente li.
Per inserirlo in tutte le pagine credo sia necessario SSI, se non si
vuole creare tutto il sito utilizzando CGI.
-- 
Īš°`°šĪø,ļļ,øĪš°`°šĪø,ļļ,øĪš°`°šĪø,ļļ,øĪš°`°šĪø,ļ
http://www.pigmalion.youngwind.com
 pigmalion network
http://www.pigmalion.youngwind.com/perl/
 appunti Perl - FAQ
Īš°`°šĪø,ļļ,øĪš°`°šĪø,ļļ,øĪš°`°šĪø,ļļ,øĪš°`°šĪø,ļ


 io lo uso solo per la home page che è generata al volo da una CGI,
..a beh...
l'inclusione puo' dare problemi avevo realizzato un contatore in cgi
+cookies perl
 ma se lo includo da errore:-(
Oxy

E usare flock ????
Alex

Newsgroup: it.comp.lang.perl
Titolo: MS SQL server

Lo avranno gią chiesto a decinaia e decinaia... Si puņ (e come si fa a)
interfacciare perl a MS SQL server per automatizzare robe del tipo
inserimento dati e formulazione query?

 inserimento dati e formulazione query?
DBI+DBD. Cerca su 
http://www.cpan.org
.
-- 
Alla prossima,
Marco
Newsgroup: it.comp.lang.perl
Titolo: Help: scrivere un file inviandogli la variabile di un url

Premetto che di Perl non conosco nulla... (pero' mi sto documentando!).
Avrei il seguente problema:
dovrei generare un file e all'interno scrivere il valore di due variabili
presenti nell'url, es.
www.pincopalla.com/cgi-bin/submit.pl?nome=carlo&cognome=cozza
Qualcuno potrebbe gentilmente aiutarmi?!
Vi ringrazio!!


www.pincopalla.com/cgi-bin/submit.pl?nome=carlo&cognome=cozza
use CGI;
$q = new CGI;
print $q->param('nome');
print $q->param('cognome');
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
==> Visita il sito di it.comp.lang.perl: 
http://www.perl-it.org
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 print $q->param('cognome');
Il programma esemplificato non fa la cosa richiesta. Infatti quando gira
come CGI tutto cio' che viene scritto su STDOUT viene inviato indietro al
browser. Il programma deve essere:
 use CGI;
 
 $q = new CGI;
 open(FILE,">fileout.txt") || die "Non posso aprire il file";
 
 print FILE $q->param('nome'), "\n";
 print FILE $q->param('cognome'), "\n";
 close FILE;
N.B.: Occorre che la directory sulla quale viene scritto il file sia
"scrivibile" dal processo sotto il quale "gira" il server httpd (ovvero il
programma CGI).
						l.f.
--------------------------------------------------------------------------
       -- )     Luca Fini                            Tel: +39 055 2752 307
 ___    |\      Osservatorio Astrofisico di Arcetri  Fax: +39 055 2752 292
/   |   | |-_   L.go E.Fermi, 5 +-----------------------------------------
(___|___//___)  50125 Firenze  /   WWW: 
http://www.arcetri.astro.it/~lfini
 (_)      (_)   Italia        / e-mail: 
lf...@arcetri.astro.it
-----------------------------+--------------------------------------------
                              In a world without fences - who needs GATES?

Grazie mille!!!! :)

  open(FILE,">fileout.txt") || die "Non posso aprire il file";
Scusa se approfitto....
Se voglio che vada in append devo inserire un altro > giusto?
Ma una domanda sorge spontanea... e se piu' persone accedono
contemporaneamente in scrittura??
Il file viene lockato in automatico e gli altri aspettano finche' non si
sblocca, oppure va in errore?
Grazie in anticipo!

 wrote in message 8fuc14$so...@w2.ntt.it...

Il meccanismo di lock lo devi gestire tu, inventandotelo in qualche modo
(per chi usa UNIX esiste il comodo flock()).
Se non lo fai, come dicevi tu va in errore.
Bye, EB
Newsgroup: it.comp.lang.perl
Titolo: Come eseguire un programma esterno

Ciao a tutti,
sapete come fare per eseguire da un cgi uno script esterno, passandogli
anche delle varibili? Esiste qualche funzione particolare che mi permette di
farlo?
Grazie a tutti.
Ciao
Davide

farlo?
Puoi utilizzare system() o i backtick (``). I parametri li passi direttamente
sulla command line e poi li leggi dall'array @ARGV.
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
ICQ# 76660101
==> Sito di it.comp.lang.perl: 
http://www.perl-it.org
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 ha scritto nel messaggio
news:slrn99k6...@karma.italpro.net...


 ha scritto nel messaggio
news:Dtom6.16408$Mx3.2...@twister2.tin.it...


cosa che mi possa aiutare, perchč non li conosco proprio.
Beh, li trovi su qualsiasi buon manuale di Perl, e sulla documentazione
online. Comunque sia eccoti un paio di esempi:
# Esegue il comando e memorizza l'output in $output
$output = `ls -l /`;
# Esegue il comando e memorizza il return value in $output
$rv = system("/bin/mycommand -a 2 -b 3");
Dall'interno del programma puoi recuperare i parametri da
@ARGV. Ad esempio in mycommand avrai:
@ARGV = ('-a', '2', '-b', '3');


 >cosa che mi possa aiutare, perchè non li conosco proprio.


$rv = system("
http://www.jumpy.it/sms
..  -a 2 -b 3"); ????
Ah, devi chiamare una URL esterna. Scusa, avevo capito male.
Basta che usi LWP, la documentazione e` tutta inclusa. Dai:
perldoc LWP::Simple
e vedi se la versione semplice di va bene, o:
perldoc LWP
per vedere tutto.
	A presto, Michele.


 ha scritto nel messaggio
news:slrn99l0...@karma.italpro.net...


 Se non hai LWP, scaricala da CPAN ed installala.

Newsgroup: it.comp.lang.perl
Titolo: dbi connect e uscita non prevista

Ciao!
Sto cercando di eseguire in un ciclo la connessione verso
quel centinaio di oracle server. Ho il problema che se l'oracle
sulla macchina ha qualche problema (db appeso), la dbi
connect restituisce errore ma uccide anche il processo
principale:
DBI connect('(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST=server)(PORT=1521))) (CONNECT_DATA = (SID =
mioservizio)))',nomeutente',...) failed: ORA-12518: TNS:listener could
not hand off client connection (DBD ERROR: OCIServerAttach) at ./
mioscript.pl
 line 512
OCIHandleAlloc(OCI_HTYPE_ERROR) failed at /usr/lib/perl5/site_perl/
5.8.8/i386-linux-thread-multi/DBD/Oracle.pm line 232.
La chiamata avviene nel seguente modo:
$Dbh = DBI->connect("DBI:Oracle:$string", "$DB_USER", "$DB_PASSWORD",
{
    RaiseError => 0,  ### if =0 Don't report errors via die
    PrintError => 1   ### if =0 Don't report errors via warn
}) or $dberr=1;
Anche impostando printerror a 0 non cambia nulla.
Cercando nei vecchi post trovo errori simili ma alla fine era un
problema di configurazione del client oracle, qui invece non voglio
 indagare sul problema dell'oracle ma nel non farmi uccidere il
processo principale.
Insomma...una sorta di getexception :)
Ah ovviamente...prima di effettuare la connessione verifico con
un ping che il server sia raggiungibile, quindi questo problema
non si verifica, e non posso effettuare un test anche di tnsping
perchè il suddetto errore dà con successo il tnsping ma il
problema si verifica successivamente alla connessione.
Spero in un vostro aiuto
Buona giornata

 un ping che il server sia raggiungibile...
Con la eval di cui sopra, ti dovresti poter risparmiare anche il ping.
Se non dovesse andare, facci sapere che ci sono anche altre strade da 
provare.
Ciao
Newsgroup: it.comp.lang.perl
Titolo: cookie and redirect (perl and c++)

allright!
My first post in this news group.
I have been trying hard for a couple of days (sad but true!) to set a cookie
and redirect a user from my cgi.
I have tried to do this both by perl and c++. I use an IIS server on win2k
for testing. This is my code in c++ and in perl: (It might look strange,
that I want to set "1" to a cookie named CountVal, but this is only a
simplified example)
file://-------------------- c++ ----------------
    printf ("Location: 
http://212.105.36.74/test.html\n
");
    printf ("Set-Cookie: CountVal=1; path=/; expires=Thu, 27-Jul-2000
00:00:00 GMT\n");
    printf ("\n");
# ------------------------------------------ Perl
print "Location: $fullurl\n";
print "Set-Cookie: CountVal=1; path=/; expires=$expdate;\n";
print "\n";
--------------------------
and to some explaining... I have read tons of tutorials, snips and articles
about cookies, so please dont reply with perldoc references only. The MAIN
problem is that it jumps to the url without setting the cookie.
Here are some additional info:
1. I talked to a guy on mirc, who said that I was to use \r\n for line feed
instead of \n, since I was using IIS. I have tried that, but it didn't work.
I have also tried \n\r, even just \r
2. Fetching the cookie works fine, so that is not the problem.
3. I have tried to switch places between Location: and Set-Cookie, so that I
set the cookie first (didn't work). This has also been done along with
changing the line feed from \n to \r\n, \n\r and \r (see 1.)
4. IF I remove Location: .... the cookie is set, but then again, I cant
redirect the user
...Am I forgetting something? Could this issue be serverconfiguration
related?
If you want more info on what Im trying to do: I want to use cgi to set a
counter +1 for each visit the user does to the site thou a cookie, and
increase a counter on a server-file (total counts -> works fine, btw). Then
I want to redirect the user if a certain value is found in a cookie named
Language... So that the correct language.html is displayed... I´know how to
do this - but why is it not setting the cookie?
Please help.
Thanks in advance
/Anders Hansson
PS please answer in english DS :)

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

Newsgroup: it.comp.lang.perl
Titolo: Vendo vcd Gundam

13 cd 39 puntate 
and...@mclink.it

13 cd 39 puntate 
and...@mclink.it
Newsgroup: it.comp.lang.perl
Titolo: Verifica dei servizi da remoto

Ciao a tutti... :)
Vi pongo questo quesito...
Devo monitorare un server LINUX, ed essere avvisato per email se:
- La macchina è spenta;
- Il demone della posta elettronica non è attivo
- Apache non funziona.
La mia soluzione:
- Richiedere una pagina web per vedere se apache è funzionante
- Inviare una email ad un indirizzo specifico.
- In entrambi i casi, ho la verifica anche se ils erver è raggiungibile,
quindi acceso.
Avete qualche suggerimento?
Premetto che di PERL sono molto alle prime armi...
Aiutatemi per quanto potete.
Ringrazio Anticipatamente !!!  ^__^
Buone Feste.
Riccardo.

Riccardo wrote:

Penso che non ti conviene rifare cose che qualcuno ha gia' fatto :-)
http://www.nagios.org
 ad esempio.
-- 
Saluti,
Giancarlo

Buone Feste.
Grazie. Anche a te :)
ciao
Stefano

 Buone Feste.
Anche a te ;-)
	- Enrico

 ha scritto nel messaggio
news:20021218144059....@sorcinelli.it...


Newsgroup: it.comp.lang.perl
Titolo: Compilatore perl

 Marco | * The Internet is full. Go away.  -- Joel Furr *

pas...@eunet.no
 wrote:
 >pero' ho letto il mese scorzo un'intervista con Larry Wall, dove
 >il mito dichiarava che uno dei principali goal di Perl ora e' arrivare
 >all'unificazione delle versioni per Unix ed NT, per cui anche il
 >compilatore....
Il compilatore e` un programma totalmente separato.


pas...@eunet.no
 wrote:
 >Sei sicuro. Credo di aver letto qualche mese fa che Malcom Beatie, il
 >realizzatore del compilatore, era responsabile di una delle prossime
 >release, con lo scopo di integrare il compiler nella distribuzione
Allora sei piu` aggiornato di me :-), comunque rimangono (almeno per ora)
due binari separati.

Newsgroup: it.comp.lang.perl
Titolo: File DBM

 dbmopen(%dbm , "file_dbm" , 0644) or die "Errore: $!\n";
Il problema è che quando vado ad eseguire lo script, se tento di inserire
una chiave già esistente, mi ritorna questo errore:
AnyDBM_File doesn't define an EXISTS method at 
file_dbm.pl
 line 22
Suggerimenti?
-- 
Using Pan: A newsreader for GNOME

>		}
Bisognerebbe conoscere anche l'implementazione di DBM (ndbm, Berkley,
ecc.), comunque puoi controllare semplicemente se il valore è definito:
    # Check for existence of a key
    print "Banana Exists\n\n" if $dbm{"banana"} ;
Questo, a differenza di quanto accade negli hash ordinari, NON dovrebbe
generare la chiave, se non esiste.
Ciao.

 generare la chiave, se non esiste.
Non l' ho capita:
$ perl -v
This is perl, v5.8.4 built for i386-linux-thread-multi
Copyright 1987-2004, Larry Wall
....
questo codice:
if (defined($hh{"rosso"})) { print "rosso\n";} else { print "no rosso\n";}
@aa = keys(%hh);
print @aa,"--\n";
$hh{"rosso"} = "ROSSO";
if (defined($hh{"rosso"})) { print "rosso\n";} else { print "no rosso\n";}
@aa = keys(%hh);
print @aa,"--\n";
@aa = values(%hh);
print @aa,"--\n";
da output:
no rosso
--
rosso
rosso--
ROSSO--
quindi mi sembra che, almeno su questa versione, se l' elemento di hash
NON E' L-VALUE non viene creata la chiave. Intendevi questo?
Ciao
Roberto.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

NON E' L-VALUE non viene creata la chiave. Intendevi questo?
Non so bene che cosa intendessi dire, e se veramente intendevo dire
qualcosa.
Quello che forse, in qualche modo confuso, avevo in mente, era che in un
hash ordinario l'esistenza di una chiave č una condizione chiaramente e
immediatamente distinta dalla definizione del corrispondente valore; in un
hash legato ad un file dbm, a quanto pare, la distinzione non č ugualmente
chiara o immediata da verificare, o almeno non in tutte le implementazioni
di file dbm. Immagino che lo sconcerto per questa incresciosa situazione mi
abbia poi fatto arrivare un po' lungo, mentre avrei dovuto prudentemente
fermarmi qui, come faccio ora.
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: Perl su HP-UX

Salve a tutti,
ho a che fare con una installazione Perl su macchine HP.
La versione correntemente installata è la 5.0005 con un insieme di
moduli veramente "minimo".
Ovviamente non esiste il modulo CPAN e mi ritrovo nella situazione di
dover utilizzare parecchi moduli che non sono presenti nella 5.0005.
Mi chiedevo: posso "crearmi" una "distribuzione" perl ad-hoc per le
mie esigenze?
Non ho accesso root alla macchina, perciò pensavo all'interprete perl
messo un una mia dir utente, con tutti i moduli necessari.
Si può fare? E se si può, come?
Grazie.

 messo un una mia dir utente, con tutti i moduli necessari.
Se hai un'ambiente in cui puoi compilare, puoi installare una versione
dell'interprete in una tua directory. (Scarica i sorgenti e leggi la
documentazione.)
Se vuoi soltanto installare dei moduli aggiuntivi in una tua directory, ti
basta passare alcuni argomenti quando esegui il 'Makefile.PL'. (V. perldoc
ExtUtils::MakeMaker, sezione 'PREFIX and LIB attribute'.) Per usare i
moduli, dovrai aggiungere un'appropriata direttiva 'use lib' ai tuoi
script, oppure definire la variabile d'ambiente PER5LIB.
Max
Newsgroup: it.comp.lang.perl
Titolo: IO::Select

Salve,
  Potreste spiegarmi il codice in questione che ho trovato sulla 
documentazione cpan?
 --
    use IO::Select;
    use IO::Socket;
    $lsn = new IO::Socket::INET(Listen => 1, LocalPort => 8080);
    $sel = new IO::Select( $lsn );
    while(@ready = $sel->can_read) {
        foreach $fh (@ready) {
            if($fh == $lsn) {
                # Create a new socket
                $new = $lsn->accept;
                $sel->add($new);
            }
            else {
                # Process socket
                # Maybe we have finished with the socket
                $sel->remove($fh);
                $fh->close;
            }
        }
    }
 --
sopratutto il ciclo foreach
grazie

  # Process socket
Altrimenti, faccio quello che devo fare relativamente alla connessione 
associata a $fh.
Max

Ho provato ad adattare il mio script con il modulo IO::Select ma 
purtroppo non arriva l'header dal browser...
#!/usr/bin/perl
use Socket qw(:DEFAULT :crlf);
use IO::Socket::INET;
use IO::Select;
use URI;
$socket = IO::Socket::INET->new(LocalPort => '81',
                                     Proto => 'tcp',
                                      Type      => SOCK_STREAM,
                                       Reuse     => 1,
                                       Listen    => 10);
$sel = new IO::Select( $socket ); 
# // MAIN...
#
#
while ( @ready = $sel->can_read )
{
   foreach $fh (@ready)
   { 
 
      if($fh == $lsn)
      { 
 
            # Create a new socket
            $new = $lsn->accept; 
            $sel->add($new);
         }  else { 
 
            # Process socket 
         $fh->autoflush(1);
         recv($fh, $request, 65536, 0);
         ($first_line) = split("\n", $request); $first_line =~ s/\r//;
         ($method, $hostAddr, $httpVer) = $first_line =~ /^(\w+) +(\S+) 
+(\S+)/;
         print "$request\n\n";
         $uri = URI->new( $hostAddr );
         $socket_B = IO::Socket::INET->new( PeerAddr => 
$uri->host,PeerPort => $uri->port,Proto => 'tcp' ) || die "$!\n";                       
 
$socket_B->autoflush(1);
         syswrite $socket_B, $request;
         while ( <$socket_B> )  { syswrite $fh, $_; }
         close $socket_B;
         close $fh;  
 
         # Maybe we have finished with the socket
 
            $sel->remove($fh); 
            $fh->close;
      }
 
   }
}
END 
{
   print "\nGoodbye!\n";
}

   recv($fh, $request, 65536, 0);
In questo punto, l'unica cosa che sai è che su $fh c'è qualcosa da leggere. 
Non sai quanto e non sai nemmeno se è tutto quello che il client ha inviato.
Quindi non puoi cavartela con una sola lettura. Analogamente, nel 
rispondere al client, non puoi cavartela con una singola operazione di 
scrittura, se non vuoi rischiare di bloccare l'applicazione per un tempo 
imprecisato.
Larry, tempo addietro si era già discusso di IO::Select e io ti avevo 
scritto un breve programmino che implementava un rudimentale web server 
senza usare thread o fork.
http://groups.google.com/group/it.comp.lang.perl/browse_frm/thread/3f123b03d363ca03
Max

 Max
grazie mille!
Newsgroup: it.comp.lang.perl
Titolo: Uso di die;

La funzione die stampa anche il testo: " at <file perl> line <linea>.".
Io invece vorrei una funzione che stampi un testo ed esca con un codice 
di errore ben preciso che imposto io.
Una idea e' questa:
sub exitmsg
{
   my ($msg, $err) = @_;
   print STDERR $msg . "\n";
   $! = 0;
   $? = $err << 8;
   die;
}
Da usare per esempio con:
exitmsg ("Errore !", 3);
Soltanto che cosi' continua a stampare il testo aggiuntivo di debug.
Ho provato a chiudere lo stream STDERR appena dopo la mia print ma il 
risultato e' che esce sempre con status 9.
Come posso fare ?
Grazie.

 Grazie.
Dai un'occhiata al modulo Religion.
Se così com'è non fa quello che vuoi puoi comunque trarne ispirazione 
(installa un gestore del segnale DIE, se ben ricordo).
-- 
Make everything as simple as possible, but not simpler.
                -- Albert Einstein

Andrea wrote:

usere exit() al posto di die?
-- 
Saluti,
Giancarlo

 
Mah, nella pagina di manuale perlfunc si dice di exit:
Don't use exit to abort a subroutine if there's any chance that someone 
might want to trap whatever error happened. Use die instead, which can 
be trapped by an eval.
Posso usare exit allora ??

Andrea wrote:

Hai capito cosa dice? se fai una funzione che serve a sostituire die
pensi che mai avrai bisogno di usarla dentro un eval?
-- 
Saluti,
Giancarlo