mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.perl
Titolo: utilizzare un mio modulo (ho già guardato le faq)

salve, devo utilizzare uno script che faccia uso di miei moduli (mi collego
a un computer remoto tramite telnet, e non posso installare niente) solo che
non riesco a farlo funzionare (ho già provato le faq)
qualcuno mi sa spiegare con un esempio pratico cosa devo fare?
grazie
Found in C:\Perl\lib\pod\perlfaq8.pod
  How do I keep my own module/library directory?
                use lib '/u/mydir/perl';
            This is almost the same as:
                BEGIN {
                    unshift(@INC, '/u/mydir/perl');
                }
       except that the lib module checks for machine-dependent
       subdirectories. See Perl's the lib manpage for more information.

Ehm, Non è che mi sapresti spiegare come si crea un modulo perl ???
grazie


                 use lib '/u/mydir/perl';
se l'hai fatto prova invece a fare:
   use lib '<path assoluto della tua homedir>/<dir del modulo>'
che e' meglio.
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/

Newsgroup: it.comp.lang.perl
Titolo: Mi consigliate un buon tutorial di perl?

Mi sapete dire dove posso trovare un buon tutorial di perl?
GRazie!
Maurizio
midiit...@geocities.com
- Musica e Computer.....e anche belle donne
(890 Midi Italiani - 1612 Midi Internazionali - Oltre 4000 Testi)
http://www.musicaecomputer.com
http://go.to/musicaecomputer
E' disponibile MC Midi Navigator 0.9b
E' disponibile Buongiorno 1.00
E' disponibile MC Leggi di Murphy 1.01
- La Moda Italiana
http://www.geocities.com/SunsetStrip/Stage/8230/supermoda.htm

 ha scritto nel messaggio
news:8h3hud$h61$1...@sirmdpsin16.inwind.it...

Newsgroup: it.comp.lang.perl
Titolo: parsing + merge = algoritmo?

Salve a tutti ho un piccolo problema su un algoritmo riguardante un
vocabolario. Lo scopo del gioco è permettere a più utenti di inserire su
una pagina wiki (che risulterà un campo in un record di un database
MySQL) dei termini con relativa spiegazione.
Successivamente fare il parsing e inserire in un database separato i
termini in maniera furba.
La situazione:
pagina wiki con una serie di vocaboli e loro spiegazone.
Sintassi:
---
termine: Vittorio
tipo: nome proprio
sinonimo: ignurant
significato: spilungone che annoia chi sa programmare davvero in perl
---
Azione:
* Collegarsi al db del wiki.
* Prelevare il record che contiene TUTTI i vocaboli, futuri record
* Dividerli in campi
* Inserirli in un altro db
Problema:
Vorrei fare un controllo per verificare che il record che sto per andare
ad inserire non sia già inserito.
Le mie idee sono due ma vorrei un parere:
1) la tabella del secondo db ha come chiave primaria il vocabolo.
	prelevo il termine; provo a fare un insert nel db e se ricevo
	errore 	vuol dire che il termine esiste già e quindi non lo devo
	reinserire. In caso contrario il termine risulterà regolarmente
	inserito.
2) la tabella del secondo db ha come chiave primaria il vocabolo.
	prelevo il termine e faccio una query per vedere se il termine
	esiste già nel database. Se esiste non lo inserisco altrimenti
	faccio un insert.
Mi farebbe avere un parere su quale delle due soluzioni sarebbe migliori
o se ne avete in mente un'altra ancora migliore.
Grazie,
	nathanvit
-- 
nathanvi
ICQ --> 20318568
mail --> vitto.z A_T 
tiscali.it


La seconda e', IMO, migliore, non solo perche' e' piu' chiara, ma anche 
perche' ti consente di ampliare la strategia. Per esempio, se il 
vocabolo esiste gia' puoi decidere di aggiornarlo, invece di lasciare 
quello originale (dipende dai tuoi obiettivi).
La prima strategia consente le stesse azioni, ma e' piu' rognosa, 
perche' dovresti mettere la logica del programa mischiata alla logica di 
gestione degli errori.
Ciao
gmax
-- 
   ____ ____  _____ _   _
  / _  |    \(____ ( \ / )
( (_| | | | / ___ |) X (
  \___ |_|_|_\_____(_/ \_)
(_____|
Sapere, saper fare, fare, far sapere
http://gmax.oltrelinux.com

 	faccio un insert.
Sicuramente opterei per questa soluzione.
E se il termine avesse più significati? O ne ha sempre solo uno? Io
userei come chiave un progressivo e farei la query su un eventuale campo
'termine' o 'parola', poi deciderei cosa fare. (Update, ennesimo
significato, etc..)
Ciao,
-- 
+--------+ | ASCII ribbon campaign ( ) | 
www.autistici.org/kral
|  kral  | |  - against HTML email  X  |
+--------+ |              & vCards / \ | my gpg id = 0x7C946947
Newsgroup: it.comp.lang.perl
Titolo: Mail, form...e perl

Ciao,
mi sapete dire se esiste un modo (una stringa in perl) per inviare una mail
di conferma all'utente che mi inviasse il mio form compilato?
Il form č in perl!
Grazie

 Il form è in perl!
   In una stringa sola, no. Pero`, nella CGI che processa i dati del 
form puoi utilizzare uno dei moduli che permettono l'invio di messaggi 
di posta. Cerca nella libreria installata, o sul CPAN se non li trovi, i 
moduli Net::SMTP o Mail::*.
-- 
Alla prossima,
Marco

 moduli Net::SMTP o Mail::*.
opsss spiegami meglio (non è che abbia tutta questa familiarità col perl),
dovrei individuare questi moduli e.. inserirci cosa?

\r\n".
	    "Subject: My Invoice #23\r\n".
	    "X-Mailer: Perl 5.6.1 with Net::SMTP\r\n".
	    "\r\n".
	    "Please, would you pay my invoice?\r\n".
	    "\r\n".
	    "-- \r\n".
	    "Best regards,\r\n".
	    "Me\r\n".
	    "\r\n";
	Net::SMTP::dataend $conn;
	# closing the connection...
	Net::SMTP::quit $conn;
	exit
</code>
-- 
Alla prossima,
Marco
Newsgroup: it.comp.lang.perl
Titolo: Ottenere da una hash la coppia di valore massimo

Buonasera a tutti.
Scusate se il post potrà risultare banale, ma ho cominciato ad usare
Perl solo da pochi giorni.
Mi chiedevo come poter recuperare da una hash (chiamiamola %h),
composta da coppie del tipo {ServerName, ServerID}, la coppia
corrispondente al valore massimo di ServerID.
Avevo provato a ordinare l'array delle chiavi in modo inverso:
@val=reverse sort values %h;
ma (oltre a non essere affatto sicuro della correttezza formale di
quanto sopra) non saprei proprio come continuare.
Grazie per ogni aiuto,
Alex

 ha scritto:

Potresti provare con un banalissimo (se non ho capito male nell'hash associ 
il valore ServerID alla chiave ServerName)
my $massimo = 0; #A proposito, ServerID è un numerico???
my $chiave;
foreach (keys %h) {
    if ($h->{$_} >= $massimo) { $massimo = $h->{$_}; $chiave = $_; }
}
Alla fine del ciclo nella variabile $massimo avrai il massimo e nella 
variabile $chiave avrai la chiave corrispondente.

 variabile $chiave avrai la chiave corrispondente.
%h è una hash, non un riferimento. Quindi $h{$_} e non $h->{$_}.


Nonostante la soluzione di Icestorm risponda perfettamente al
requisito, potresti essere interessato ad avere una versione "al
contrario" dell'hash, ossia in cui le chiavi sono i ServerID ed i
valori sono i ServerName:
   my %invh;
   @invh{values %h} = keys %h;
A questo punto, puoi utilizzare la funzione max nel modulo List::Util
per scrivere qualcosa di molto leggibile:
   use List::Util qw( max );
   my $max_id = max keys %invh; # anche: max values %h
   my $name_of_max_id = $invh{$max_id};
Il tutto, ovviamente, se in effetti %invh ti può essere utile anche
per altri motivi, altrimenti è solo una perdita di tempo e di
memoria... Vale anche quanto notato da Icestorm: i ServerID sono
numerici?
Per finire, se ti serve la lista dei nomi ordinata secondo gli id
corrispondenti, puoi provare qualcosa tipo:
   my @sorted_names = sort { $h{$a} <=> $h{$b} } keys %h;
se gli id sono numerici, altrimenti:
   my @sorted_names = sort { $h{$a} cmp $h{$b} } keys %h;
se i ServerID sono identificativi alfanumerici (e l'ordinamento voluto
è quello lessicografico). Da @sorted_names puoi accedere facilmente ai
corrispondenti del massimo e del minimo:
   my $name_of_max_id = $sorted_names[-1];
   my $name_of_min_id = $sorted_names[0];
e così via.

 ha scritto:

Hai ragione.
Mi è scappato perché sono abituato a lavorare sempre con i riferimenti.
Newsgroup: it.comp.lang.perl
Titolo: Ordinare hash

Mi rendo conto che può essere una cosa molto banale tuttavia non sono
ancora riuscito a trovare la soluzione.
Come posso ordinare un hash sulla base delle keys?
Ho provato con:
%sorted = sort %unsorted;
ma fa un casino
maxo


ciao
Stefano



Gli hash sono gia` ordinati, ma non come vuoi tu :-)
In realta` sono, appunto, delle hash table, quindi non puoi imporre un
ordine diverso da quello di hash, a meno che non usi qualche trucco tipo
modulo Tie::IxHash.
Ovviamente puoi _estrarre_ gli elementi in un certo ordine:
my @k = sort keys %hash;
foreach my $key (@k){
	print "$key => $hash{$key}\n";
}
-- 
Rev. Nando Santagata
To send me an e-mail change "seemysignature" into "ipers"

 }
O ancora piů semplicemente, come si fa di solito:
foreach my $key (sort keys %hash){
   print "$key => $hash{$key}\n";
}
-- 
If you believe in everything you read, better not read.
                -- Japanese Proverb

Perfetto, direi che per il mio problema questo puň bastare!
Grazie.
maxo


Newsgroup: it.comp.lang.perl
Titolo: Verifica codice fiscale in PERL

Ciao
devo includere in uno script la verifica del CF: l'utente introduce tutti i
propri dati, compreso il codice fiscale, in una form lo script si occupa
solo di verificarne la correttezza: c'è qualcuno che, gentilmente, ha
sottomano la parte relativa al calcolo del codice fiscale e me la vuol
inviare?
Altrimenti vorrà dire che dovrò riscrivermela... :-(
so che non è difficile ma non mi ricordo più l'algoritmo per il CF... :-)
Tra l'altro quello del calcolo del CF fu uno dei primi programmini decenti
che feci in C... :-)
chissà che fine ha fatto...
ciao e grazie
tira

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

Se ti serve solo l'algoritmo, sul sito comune di it.comp.lang.visual-basic
(
http://www.murialdo.it/it_lang_vb
) è dettagliatamente spiegato.
Ciao!
--
Umberto Meroni
[
http://www.ubi1k.com
] [
http://www.ubi1k-vb.net
]
[Come contattarmi: 
http://www.ubi1k.com/meroni
]
---
In a world without fences, who needs gates?
---

 wrote in message 38a7e1db.8054556@proxy...


Newsgroup: it.comp.lang.perl
Titolo: [OT] Estrarre indirizzi posta elettronica

Ciao
sto cercando per WinXp, un programma.exe
in Perl, che legga ed estragga da  file.eml, -non
sono file di Outlook, ma di altro client-, indirizzi
di posta elettronica.
Non mi serve per spam,  ma per lavoro.
Vi ringrazio.



boh, q.cosa come
while (<>) {
  for (; m/(\w+(\.\w+)*@\w+(\.\w+))/; $_=$') {print "$1\n";}
}
forse ?

Newsgroup: it.comp.lang.perl
Titolo: oggetti del browser dal Perl

Qualcuno sa dirmi come riuscire ad accedere agli oggetti del browser
 history, document...) dallo script Perl richiamato da una pagina web?
Grazie e ciao,
Tommaso.

 history, document...) dallo script Perl richiamato da una pagina web?
NON SI PUO!!!!
Il perl e' eseguito _serverside_, che ne sa il server degli oggetti del
browser?????
-- 
Saluti,
Giancarlo

 wrote in message
968348101...@news.inet.it...

Newsgroup: it.comp.lang.perl
Titolo: nomi degli array

Ho una domanda su un problema che prorpio non capisco. Ho scritto a un
certo punto in un codice le seguenti rige:
-----------------------------------------------------------------------------------
# metto i titoli con un valore di prezzo != da '' in un nuovo array:
# @titolo_ok
# le variaz. rispetto al collocamento (tutte non nulle), le metto nel
# nuovo array @var_coll_ok
    my $j = 0; for($i = 0; $i <= $#titolo; $i++)
    {
	if ($var_coll[$i])   # se l'i-esimo valore di @var_coll è non nullo
	{
	    $titolo_ok[$j] = $titolo[$i];
	    $var_coll_ok[$j] = $var_coll[$i];
	    $j++;
	}
    }
 
    print $#titolo."\t".$#titolo_ok."\t".$#var_coll_ok."\n";
----------------------------------------------------------------------------------
Ottengo come output:
43	43	40
anche se, x come sono stati definiti, gli array @titolo_ok e @var_coll_ok
dovrebbero  avere lo stesso n° di elementi, cioè 40! Ho controllato e gli
ultimi 3 elementi di @titolo_ok coincidono con gli ultimi 3 di @titolo!
Insospettito, allora, ho provato a cambiare nome a @titolo_ok: l'ho
chiamata @ok_titolo. In teoria dovrebbe essere un semplice cambio di nome
e invece con questo nuovo nome tutto funziona!! L'output infatti è:
43	40	40
Mi chiedo allora, c'è qualcosa sui nomi delle variabili che mi sfugge?
Perchè succede  questo?

 Perchè succede  questo?
ehmm, ho scoperto che il problema era molto + banale...
non avevo specificato che questi array fosserlo locali, e siccome gli stessi nomi
li usavano anche altre subroutines.... (!)
scusate!

 Perchè succede  questo?
ehmm, ho scoperto che il problema era molto + banale...

Newsgroup: it.comp.lang.perl
Titolo: PERL e MYSQL

qualcuno sa dirmi come configurare correttamente le interfacce DBI:DBD per
utilizzare script CGI-PERL per leggere dati su un DB Mysql?
1) Ho installato mysql, creato un DB e verificato che la tabella riempita
abbia effettivamente dei dati.
2) Ho installato l'interprete perl (comandi configure+make+make install)
scompattando il file mod_perl-1.24.tar.gz
3) Ho installato l'interfaccia DBI (comando perl Makefile.PL) scompattando
il file DBI-1.13.tar.gz
4) Ho installato il DBD per mysql (comando perl Makefile.PL) scompattando il
file Msql-Mysql-modules-1.2215
però al momento della connessione nello script cgi tramite l'istruzione
my
$dbh=DBI->connect("DBI:mysql:database=test;host=localhost","undef","undef")
or fatalerror( $q, "Could not connect" );
ottengo il messaggio di errore.
ho paura che il problema sia al punto 3 o 4 dell'elenco precedente. Come
deve essere fatta l'installazione completa e corretta?
Grazie per la collaborazione
Meoni Marco

Marco Meoni wrote:

Per me il problema e' che l'utente ndef con password undef non puo' 
accedre al db test.
-- 
Saluti,
Giancarlo


Prova a togliere il fatalerror e lascia solo:
my $dbh=DBI->connect("DBI:mysql:database=test;host=localhost","undef","undef");
così vedi il messaggio d'errore di mysql, che chiarirà il problema meglio di
"could not connect".
Probabilmente si tratta di un problema di permessi per l'accesso al database
test.
Buon lavoro

or fatalerror( $q, "Could not connect" );
Occhio che usando "undef" tra virgolette vuol dire che tenti di
conneterti al database utilizzando un utente di nome undef, non che
tenti di conneterti in maniera anonima (cosa che penso volessi fare).
--
Rimuovi i caratteri maiuscoli dall'indirizzo e-mail per ottenere
quello reale

Newsgroup: it.comp.lang.perl
Titolo: chiamare script su altra macchina

Ciao, dovrei fare qs cosa: da uno script perl che sta sul mio pc windows
dovrei chiamare un altro script perl che sta su una macchina unix
(ovviamente le due macchine si vedono). Dovrei passare anche dei
parametri. Si può fare?
Grazie mille per l'aiuto
Ciao
Andrea
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

parametri. Si può fare?
fai prima a provare :)
--
pigmalion at home
http://www.pigmalion.info/

 fai prima a provare :)
:-))   ma...tipo? giusto a grandi linee, grazie


 :-))   ma...tipo? giusto a grandi linee, grazie
Net::Telnet   potrebbe servire?


Net::Telnet   potrebbe servire?
si, serve...
se la macchina unix è online ed ha una shell alla quale ti puoi
loggare, puoi benissimo avviare script, passare parametri...


 loggare, puoi benissimo avviare script, passare parametri...
funziona, infatti! l'unico problemino è stato capire come dovevo settare
il prompt, ma con qualche tentativo ci sono riuscito
il bello è che il modulo Net::Telnet l'ho scoperto curiosando sul tuo
sito... :-))
ciao e grazie
Andrea

Newsgroup: it.comp.lang.perl
Titolo: Problemi con i formati

Salve ragazzi,
ho un problema con i formati,
nel mio codice ho inserito le seguenti righe:
format TRACCIA=
il valore dei campi è @<<<<<<<.
$value
.
write TRACCIA;
Purtroppo però non mi scrive niente sapete dirmi dove è l'errore? 
GRAZIE A TUTTI!!
Claudio Bellucci

 Purtroppo però non mi scrive niente sapete dirmi dove è l'errore? 
L'hai eseguito con -w ? Cosa ti dice?
Occhio che TRACCIA non e' il nome del formato: e' il filehandle di un file
che devi aver aperto.
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 ha scritto nel messaggio
news:8t298k$sjr$1...@menelao.polito.it...


 essere usato per stampare a video.......Thank you very much!!!
Certo che puo' essere usato per stampare a video!
Basta definire il format STDOUT.


Newsgroup: it.comp.lang.perl
Titolo: Creazione nuovi processi su Win 32 utilizzando interfaccia Tk

Ciao a tutti, mi trovo con un piccolo - grande problema che mi sta
bloccando (oltre a bloccare il mio mio applicativo)
Ambiente win XP
Perl Activestate 5.8.3
Sto scrivendo un applicativo scemo che accede via FTP a uno spazio da
cui scarica dei file secondo certi criteri. Per evitare di dare a
clienti ormai totalmente abituati a interfacce grafiche uno strumento
eccessivamente spartano, ho sviluppato una interfaccia grafica sotto
Perl Tk. Naturalmente l'accesso FTP congela l'interfaccia e quindi
l'ovvia contromisura sarebbe quella di creare un nuovo processo cui
delegare il lavoro che consuma risorse. E qui iniziano i guai.
Naturalmente la fork sotto windows ammazza l'applicativo senza tanti
complimenti. E questo lo davo per scontato. Meno scontato è il fatto
che anche le contromisure proposte nel testo: Mastering Perl/Tk si
rivelano inefficaci.
L'argomento è oggetto di trattazione nel paragrafo "Win32
Considerations" pagine 541 in cui, come strumento risolutivo, dopo
diverse ulteriori indagini, viene indicato  l'uso del modulo:
Win32::Process::Create, che in realtà non risolve nulla e si traduce
in un altro crash altrettanto rumoroso del primo..
Poichè so che ci sono ottime competenze di perl in ambito Windows a
spasso per il newsgroup, chiedo se qualcuno sa indicarmi come
risolvete questo problema da cui non esco.
Grazie e ciao
Daniele

Perl Activestate 5.8.3
Per favore, ignorate questo messaggio
Risolto. La funzione citata è deprecata, occorre usare: use
Win32::Process
Ciao
Daniele
Newsgroup: it.comp.lang.perl
Titolo: problema con XML::Simple

Ciao,
quando tento di eseguire la seguente operazione:
$r_network = $xs->XMLin($XML_FILE);
il programma esce e visualizza il seguente errore:
not well-formed (invalid token) at line 2, column 3, byte 9 at 
/usr/local/lib/perl5/site_perl/5.8.7/mach/XML/Parser.pm line 187
Ecco uno stralcio del file xml che tento di importare:
<1 id="1" community="xxx" hostname="xxx" ip="xxx" level="1" type="xxx">
    <neighbor name="id" 0="0" />
    <neighbor name="ip" 0="xxx" />
  </1>
ho letto che un file xml non puo' iniziare per numero ma anche se 
sostituisco il numero con una stringa
non cambia nulla.
Andrea 

  </1>
"1" non è un nome valido per un tag XML.
Max



Ha anche messo "0" come nome di attributo ...
  Raffaello

 ha scritto nel messaggio 
news:Pine.OSF.4.63.06...@harry.molgen.mpg.de...


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

Ciao a tutti,
devo elaborare una stringa fatta in questo modo:
my $VAR= "01 00 02 01 02 01 02 04 02 02 15 31";
devo trasformarla in
0100
0201
0201
0204
0202
1531
Grazie in anticipo

 1531
Prova una cosa tipo
$VAR=~s/(\d\d) (\d\d) ?/$1$2\n/g;print $VAR


ecco il risultato
010002010201020402021531



$ perl -e 'my $VAR="01 00 02 01 02 01 02 04 02 02 15 31";
$VAR=~s/(\d\d) (\d\d) ?/$1$2\n/g;print $VAR'


 - Mostra testo citato -
azz... io lo metto in in file e lo eseguo ed ho un risultato
diverso... mistero... volendo ciclare la stringa?

 volendo ciclare la stringa? 
Anche qui, dovresti postare un esempio, perche' detta cosi' e' alquanto
vaga,


mi devi scusare ma sintetizzare il tutto non è semplice ma ci posso
provare.
Allora io ho questa stringa:
my $VAR="01 00 02 01 02 01 02 04 02 02 15 31";
devo trasformarla in
0100
0201
0201
0204
0202
1531
poi devo sostituire il 1° carattere SE 0 con A0 se 1 A2
e in piu' devo chiamare una pagina http per ogni valore ma questo l'ho
fatto usando CURL

 - Mostra testo citato -
per questo chiedevo del ciclo ..sorry

 fatto usando CURL
Sorry ma la sfera di cristallo non ti segue piu'. "Chiamare" una pagina
http? Cosa vuol dire? In che condizioni lo devi fare? Cosa c'entra con
quello che hai detto prima?


ahahah sempre piu' difficile... dimmi come posso iterare poi lo
brucio :D
Newsgroup: it.comp.lang.perl
Titolo: Differenza tra My e Local???

Qualcuno sarebbe cosě gentile da spiegarmi quale č esattamente la differenza
tra My e Local?
Grazie
Stefano G.

 differenza tra My e Local? 
Premmesso che la questione è illustrata con chiarezzza nelle faq e nella
documentazioned el Perl, cercherò di spiegarla meglio che posso. (Si
tratta in effetti di una delle più comuni fonti di confusione per i
neofiti.)
Le  keyword my e local sono rispettivamente associati a due meccanismi
molto diversi per la definizione dello scope di una variabile:
- scope lessicale
- scope dinamico
Il primo è quello che sostanzialmete esprime l'idea di variabile locale,
a cui siamo abituati se abbiamo usato linguaggi come C o Pascal. In questo
caso, il significato di un simbolo è determinato esclusivamente dalla
struttura sintattica del sorgente.
Ad esempio:
 my $pippo = 1;
 sub print_pippo { print $pippo; };
   {
      my $pippo = 10;
      print_pippo();  # stampa 1, non 10!
  }
Esattamente come si aspetterebbe un programmatore C.
La keyword local, a dispetto del nome (ormai fuorviante), esprime qualcosa
di significativamente differente, sebbene in determinate circostanze possa
essere impiegato per ottenere effetti simili (in perl4 'my' non c'era e si
sopperiva con 'local').
local in pratica "congela" il valore della variabile e lo ripristina
all'uscita dello scope. In questo periodo qualsiasi porzione di codice,
incluse le subroutine invocate, vedrà l'eventuale nuovo valore della
variabile, anche se tale codice non è di fatto parte del blocco { } in cui
appare local. Si parla di scope dinamico perchè si propaga lungo la linea
di _esecuzione_ del programma.
Adattando l'esempio precendente...
 $pippo = 1;
 sub print_pippo { print $pippo; };
  {
      local $pippo = 10;
      print_pippo();  # stampa 10, non 1!!!!
   }     
 print_pippo();  # stampa 1!
Come puoi vedere, l'effetto è molto diverso.
In generale, local dovrebbe essere evitato, può avere effetti poco
controllabili ed è rarissimo che non possa essere sostituito da my.
Max
Newsgroup: it.comp.lang.perl
Titolo: CPAN, DBI 1.20 e ActiveState Perl

Io ho un problema nell'installare DBI 1.20 dal CPAN.
Prima vi do' la configurazione del mio computer:
OS : Win 2000 Professional  + Visual C++ 6.0
Perl Active State Perl 5.6.1 build 626
IIS con WIN 2000 Professional
Io ho eseguito i seguenti passi:
1) Scaricato DBI 1.20 da 
CPAN.ORG
2) Scompattato il file .GZ in una dir sul disco
3) Ho seguito i passi indicati nel Readme dall'autore dei moduli:
PERL 
MAKEFILE.PL
NMAKE (e non make in quanto non presenti in Win 2000 con Visual C++
installato)
NMAKE TEST
NMAKE INSTALL
Ho ricevuto i seguenti errori:
E:\Perl\lib\CORE\perl.h(426) : fatal error C1083: Cannot open include file:
'sys/types.h': No such file or directory
Io ho installato ActivePerl in modo corretto ma effettivamente non ci sono
files
.H nella cartella PERL\LIB\CORE che invece sono presenti nella cartella in
VISUAL C++\VC98\INCLUDE
L'autore dice che se capita un problema con i files HEADER probabilmente il
Perl
non e' installato in modo corretto ma io l'ho INSTALLATO IN MODO CORRETTO!
Perche' un simile problema ? Cosa devo fare per installare DBI DAL DISCO
LOCALE in modo corretto
con Active Perl ? Devo usare PPM ? C'e' un modo per scaricare in locale i
packages con PPM e installare in locale?  (Mettiamo il caso che io perda la
connessione !)
Devo compilarlo DBI oppure posso copiare i files .PM contenuti nel file
compresso: e se e' vera l'ultima risposta dove li devo copiare i files ?

 la connessione !)
a quanto ne so non puoi usare CPAN con ActivePerl su windows, devi 
installarti i moduli precompilati con PPM
-- 
/federico

 ha scritto nel messaggio
news:9vve7f$tnj$1...@newsfeed.cineca.it...

Newsgroup: it.comp.lang.perl
Titolo: fork inteliggente

Salve,
     ho bisogno di creare una fork inteliggente ... ovvero che ad ogni 
nuovo processo elimini quelli in corso paralleli e acquisisca la 
precedenza su STDIN...il seguente è il codice base, come devo 
modificarlo? (avevo pensati di mettere in una array tutti i $$ che si 
creano man mano che si forka...poi prima di forkare si killano tutti gli 
$$ in array ... dopodicche si chiude e si riapre SDTIN...
#!/usr/bin/perl
use strict;
use warnings;
use IO::Socket::INET;
use IO::Handle;
STDOUT->autoflush(1);
my $server = IO::Socket::INET->new(LocalPort => '65001', Proto => 'tcp', 
Reuse => 1) || die $!;
$server->listen();
while ( my $client = $server->accept() )
{
   next if my $kid = fork; die "fork: $!" unless defined $kid;
 
   $client->autoflush(1);
 
   my $buff = <$client>;
 
   print STDOUT $buff;
 
   syswrite $client, $_ while sysread \*STDIN, $_, 1024;
} continue {
   close $client;
}

 precedenza su STDIN...
Vedi risposta alla discussione sui thread da te creata più di recente.
Sostanzialmente, avrai al più un processo in esecuzione per volta, per
cui non capisco perché non fare il tutto con un processo solo.
Questioni di sicurezza?
Ciao,
    Flavio.

 Questioni di sicurezza?
Allora, questo è uno script che gira in locale, chiamato da terminale 
che accetta una connessione alla volta ... questa request si aspetta una 
risposta da questo server...che può impegnare del tempo...questo vuol 
dire che se lo stesso client vuole fare un'altra richiesta a questo 
server dovrà aspettare, perchè il server è impegnato ad elaborare la 
response precedente. Ora ho bisogno che ogni nuova connessione prenda la 
precedenza e annulli l'elaborazione precedente...(in corso). Questo 
perchè se il client richiede una nuova connessione non ha bisogno della 
response della precedente.

Newsgroup: it.comp.lang.perl
Titolo: Moduli Subversion

Ciao a tutti,
come consigliato da qualcuno, vorrei scrivere dei programmi in Perl
per interagire con un repository SVN.
Mi potete consigliare quali moduli scaricare da CPAN, tenuto conto che
devo solo accedere ed eseguire checkout dal repository ?
Grazie per l'aiuto
ciao
ennio

 devo solo accedere ed eseguire checkout dal repository ?
Direi che SVN::Client della distribuzione Alien::SVN è quello che ti serve:
http://search.cpan.org/dist/Alien-SVN/
Ma credo ci sia anche roba più semplice, se cerchi su CPAN.
Ciao,
Emanuele.
Newsgroup: it.comp.lang.perl
Titolo: Ancora Espressioni Regolari

Ciao a tutti,
Chi mi saprebbe dire che differenza c'è tra scrivere '^.*' e '.+?'
Si dovrebbero comportare uguali oppure no?
Per esempio se ho la stringa "pippo pippo"
scrivere /^.*([a-z])/ mi prende il primo o l'ultimo "pippo"?
e se scrivo /.+?([a-z])/ quale "pippo" mi restituisce?
Grazie e ciao
Gazza

 e se scrivo /.+?([a-z])/ quale "pippo" mi restituisce?
in questo caso .+? va a corrispondere con "p" (ricorsa 1 o piu' ma 
prendendone il meno possibile) e quindi [a-z] va a match-are con la "i" 
che infatti ti ritrovi in $1.
PS se come stringa di test invede di "pippo pippo" usassi "abcde fghij" 
forse sarebbe piu' facile capire cose macth-a....
-- 
Saluti,
Giancarlo

 ha scritto nel messaggio
news:ai8qi5$7tqs$1...@stargate1.inet.it...

eh, eh, ma non lo sapevo :-)....
comunque grazie adesso ho capito la differenza
ciao
Gazza
Newsgroup: it.comp.lang.perl
Titolo: non è attinente al perl ma secondo me vale la pena leggere... non è una catena!!

vi inoltro una mail che mi è stata mandata questa mattina:
Dovete sapere che a febbraio 2002 c'e' stata una
sentenza che ha dato 700
miliardi di lire di multa a 39 assicurazioni (tutte
praticamente)
E' stato dimostrato che queste carogne dal 1995 al
2000 hanno applicato IL
CARTELLO... per chi non lo sa il cartello vuol dire
che in pratica non si
facevano concorrenza e aumentavano tutte ogni anno
costringendo i
consumatori a farli arricchire ingiustamente.
Il cartello delle compagnie assicuratrici che ha
alleggerito le tasche degli
utenti automobilisti è stato specificatamente
illustrato dall'Antitrust che
ha comminato una multa di 700 miliardi di vecchie
lire alle numerose imprese
di assicurazioni (n.39).
Una condanna che è stata confermata anche dal
Consiglio di Stato:
l'Antitrust aveva, dunque, visto giusto. La società
di servizi (Rc Log) con
cui le compagnie hanno condizionato il mercato è una
delle, purtroppo non
rare, espressioni del retaggio monopolista che
soffoca la concorrenza.
La sentenza, oramai passata in giudicato, ha
confermato l'illegittima
attività delle maggiori compagnie di assicurazione
operanti in Italia (SAI,
GENERALI, HELVETIA, LLOYD ADRIATICO, AZZURRITALIA,
MILANO, RAS, REALE MUTUA,
ZURIGO, ALLIANZ SUBALPINA, ASSITALIA, TORO, UNIPOL,
WINTHERTUR, AXA,
FONDIARIA, GAN) le quali, sin dal '95-'97,
attraverso la creazione di un
accordo di cartello operavano contro la libera
concorrenza del mercato ed ai
danni dei consumatori, con una maggiorazione dei
premi rc auto intorno al
20% .
In America una sentenza del genere avrebbe forzato
le compagnie a risarcire
del 20% delle somme pagate a tutti i loro clienti.
Ma in Italia NO!.
Dobbiamo essere noi stessi a richiedere il rimborso
immediato con una
semplice procedura che ora vi allego
Ma queste carogne di assicurazioni hanno insabbiato
tutto, cioe' i Media non
ne hanno mai parlato in maniera massiccia.
VERGOGNATEVI !!!!!!!!!
Ecco il link al sito della ADUSBEF per ottenere
subito il rimborso compreso
di moduli che potete stamparvi e compilare nella
massima semplicita'.
http://www.adusbef.it/trafftel.htm#MultaRCA
Se per ipotesi in famiglia avete 4 macchine
aspettatevi una bella somma
intorno ai 2500 euro.
Spero che a causa di questa mia mail migliaia di
persone avviino le
richieste. E mi raccomando mandate il piu possibile,
Mail, Chat, Forum ecc.
per informare piu' gente possibile.
Spero che a causa di questa mia mail possiate
riprendervi tutti i vostri
soldi ...

Prego mettere OT all'inizio del messaggio
Newsgroup: it.comp.lang.perl
Titolo: I/O di file eseguibili

Salve a tutti
sono un utente occasionale di perl alle prese 
con un compito semplice del quale, tuttavia, non 
riesco a venire a capo. Il frammento di codice che
ho postato dovrebbe eseguire un certo numero di volte
i programmi "pqt.out" e "poldo.out", passare loro alcuni
parametri di input, e catturare l'output del secondo allo
scopo di effettuare un analisi di tipo statistico. Il ciclo
funziona correttamente per un paio di volte, quindi, 
arrivato al secondo blocco di codice (quello adibito 
all'esecuzione del programma "poldo"), termina con un errore 
di segmentazione.  Ho avuto modo di verificare che 
il problema non risiede nei programmi invocati dallo script,
al contrario credo che l'errore sia prodotto da un utilizzo
scorretto delle operazioni di I/0 sul file "poldo.out". 
Sarò sinceramente grato a chiunque abbia la pazienza di
aiutarmi.
Luke        
for ($j=0; $j<$numBlock; $j++){
 
    [...]         
 
    open (PQT,"|./pqt.out");
    print PQT "1\n";
    print PQT "g\n";
    close (PQT);
    open2 (*POLDO_OUT,*POLDO_IN,"./poldo.out");
    print POLDO_IN "input 'q1t.dat' [1:5]\n";
    print POLDO_IN "spline 'd0'\n";
    print POLDO_IN "seek 'y0=0.5' [::1] -plot=no\n";
    print POLDO_IN "exit\n";
    @root=<POLDO_OUT>;
    close (POLDO_IN);
    close (POLDO_OUT);
    $root[7] =~ s/ x0 -> //;
    chomp($root[7]);
    $tau_j = $root[7];
    print (" $j -> $tau_j\n");
    $var+=($tau-$tau_j)*($tau-$tau_j);
}

 open2 (*POLDO_OUT,*POLDO_IN,"./poldo.out");
La funzione open2 è definita da te?
Cmq prova a dare un'occhiata a perldoc perlopentut, soprattutto la
sezione "Pipe Opens".
Ciao,
-- 
+--------+ ASCII ribbon campaign ( )
|  kral  |  - against HTML email  X 
+--------+              & vCards / \

La funzione open2 è definita da te?
  IPC::Open2
Non vedo nulla di pacchianamene errato. Ma del resto, è difficile dire
qualcosa senza conoscere più in dettaglio poldo.out, e in ogni caso non è
particolarmente sorprendente che open2 dia problemi.
Ciao.

   IPC::Open2
Scusate, non conosco la famiglia IPC::*. Mea culpa :).
L'apertura in pipe in questo caso non sarebbe utile?


L'apertura in pipe in questo caso non sarebbe utile?
La pipe che si penserebbe di poter usare per operazioni di lettura e
scrittura:
    $pid = open(HANDLE, "|cmd args|");
no, non sarebbe utile ("Can't do bidirectional pipe at ...", se ti ricordi
di eseguire con -w).
Il consiglio che hai dato di leggere perlopentut è comunque buono, perché
appunto lì trovi il rimando a perlipc e IPC::Open2.
Può darsi che si possa fare anche con IO::Pipe.
Ciao.

 ricordi di eseguire con -w).
Grazie della spiegazione! 
Sulle pipe ovviamente non si può scrivere e leggere.
In effetti la domanda che ho fatto è un pò stupida visto che sia nel
codice che nella spiegazione Luke dice chiaramente che scrive e legge su
un programma esterno. Scusate la poca attenzione! :)

Newsgroup: it.comp.lang.perl
Titolo: problemi librerie perl

Ho un problema su un server.
In pratica manca il file Carp.pm che viene richiesto da molti script e
senza non funzionano.
Ho provato con [root@server root]# perl -MCPAN -e shell
Can't locate Carp.pm in @INC (@INC contains:
/usr/lib/perl5/5.8.0/i386-linux-thr
ead-multi /usr/lib/perl5/5.8.0
/usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-
multi /usr/lib/perl5/site_perl/5.8.0 /usr/lib/perl5/site_perl
/usr/lib/perl5/ven
dor_perl/5.8.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.0
/usr/lib
/perl5/vendor_perl /usr/lib/perl5/5.8.0/i386-linux-thread-multi
/usr/lib/perl5/5
.8.0 .) at /usr/lib/perl5/5.8.0/CPAN.pm line 10.
BEGIN failed--compilation aborted at /usr/lib/perl5/5.8.0/CPAN.pm line 10.
Compilation failed in require.
BEGIN failed--compilation aborted.
[root@server root]#
Come posso fare per installare questo maledetto Carp.pm?

 /usr/lib/perl5/5.8.0/i386-linux-thr
E' strano, Carp.pm è un modulo distribuito con il Perl stesso.
Ad ogni modo il modulo lo trovi qui:
http://search.cpan.org/src/JHI/perl-5.8.0/lib/Carp.pm
anche se forse non risolverà il problema: magari quell'installazione di 
Perl potrebbe avere altri problemi.

Ho paura che ci sia molto casino per il perl su questo server.
Se c'č qualcuno che mi puň eventualmente togliere e reinstallare
i cgi con tutte le librerie piů usate per max 50 euro mi contatti a
sam...@virgilio.it


Risparmiati i soldi :)
Io ho avuto problemi simili con alcune distribuzioni di Linux che 
installavano Perl malissimo.
La soluzione piu' semplice e' questa:
(1) Scarica i sorgenti del Perl:
http://search.cpan.org/CPAN/authors/id/N/NW/NWCLARK/perl-5.8.3.tar.gz
(2) Segui le istruzioni per compilare e installare (sono nel file 
INSTALL). Devi eseguire queste istruzioni da root
     rm -f config.sh Policy.sh
     sh Configure -de
     make
     make test
     make install
L'installazione di default ti mette gli eseguibili in /usr/local/bin
mentre quelli vecchi dovrebbero essere in /usr/bin
(3) Fai un link simbolico per sostituire il vecchio Perl con il nuovo
# cd /usr/bin
# mv perl perl.vecchio
# mv perldoc perldoc.vecchio
# ln -s /usr/local/bin/perl perl
# ln -s /usr/local/bin/perldoc perldoc
(4)
buon lavoro!
gmax

Newsgroup: it.comp.lang.perl
Titolo: aiutino !!

qualcuno sa dirmi perche' non funziona ?!?!
l'intento era di stampare solamente le linee diverse contenute in due
file. esempio nel passwd.
il mio script "vorrebbe" fare cosi':
#!/usr/bin/perl
open (PASSWD,    "< passwd") || die "Impossibile aprire passwd.\n\n";
open (SECONDO, "< passwd-old") || die "Impossibile aprire
passwd-old.\n\n";
open (SCRIVI,  "> scrivi") || die "Impossibile aprire scrivi.\n\n";
@riga = <PASSWD>;
for ($i=0; $i<=$#riga; $i++) {
#print " $riga[$i]";
}
while ($r = <SECONDO>) {
"$riga" != "$r" || print SCRIVI "$r\n";
next;
}
close (PASSWD);
close (SECONDO);
close (SCRIVI);
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
grazie
carlo

Intanto devi nidificare il ciclo while all'interno del ciclo for (nel tuo
listato il ciclo for si chiude prima del while), altrimenti non funziona
di certo!
Buon lavoro
Newsgroup: it.comp.lang.perl
Titolo: compilazione perl

Qualcuno sa dirmi come posso compilare uno script in perl contenente Pg.pm
(il modulo per gestire db in postgres) ? Con perlcc non ci riesco....
Grazie FC

 wrote in message
Fjzd8.7600$Ns4.3...@news2.tin.it...


 ha scritto nel messaggio
news:a570kd$rgd$1...@lacerta.tiscalinet.it...


 qualche opzione da dare ?
c'è il manuale 
http://www.indigostar.com/pxman.htm
 che trovi anche
nello zip
Ci sono vari punti dove ti spiegano cosa fare.

Newsgroup: it.comp.lang.perl
Titolo: Cgi, Access e altro.

Spero di non essere OT. Ho appena costruito un sito interamente in perl che
si basa su un database mdb di Access. Più o meno il tutto funziona, però è
incredibilmente lento; ovvero in locale ci metto 7-8 secondi per caricare
una pagina.
Io credo di aver individuato due problemi fondamentali:
1) uso non ponderato di cicli in perl.
2) l'interfacciamento con Access.
Secondo voi quale dei due ha più peso? Mi conviene di più cambiare database
o riscrivere i cicli(non ho molto tempo)? O che...?
Poi ho un altra domanda da perl-neofita. Come faccio a passare delle
variabili da una pagina a un'altra (in modo invisibile), o dicendo meglio da
uno script cgi a un altro?
Ciao&grazie.

 uno script cgi a un altro?
Questo lo ignoro (o meglio non voglio sparare cavolate)

 Questo lo ignoro (o meglio non voglio sparare cavolate)
..per passarle da una pagina  all'altra mi sa che l'unico modo è passarle ad
un file temporaneo...
ciao
Francesco

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

uun file temporaneo...
Nooooo.....
Almeno 3 modi:
- via una form come campi hidden
<form method=post action=script.cgi>
<input type=hdden name=NOME value=VALORE>
pero' poi devi mettere un oggetto tramite cui sottomettere la form.
se ben ricordo con un oggetto <A> non si ci riesce.
- il link che punta al cgi la fai:
<a href=script.cgi?NOME=VALORE&NOME2=VALORE2>link</a>
pero' in effetti questo non e' invisibile come chiedevi.
- tramite dei cookies.
il primo cgi setta un coockie con una coppia chiave valore, il secondo se lo fa
restituire e lo usa per dare un valore ad una variabile.
Quindi erano 2 in realta perche' il secondo non vale :)
-- 
Saluti,
Giancarlo

Per scambiare dati:
Copio testualmente da "Perl-Guida di Riferimento" di o'reilly
"CGI.pm semplifica il mantenimento dello stato senza l'uso dei cookies.
Quando uno script CGI.pm è chiamato più volte, ai campi di imput sono
assegnati dei valori predefiniti corrispondenti a quelli dell'invocazione
precedente.
ECCO FATTO!
Lo sapevate?
Max

 > cerchero` un'altra donna dentro ai sogni di Tarzan...
--
------------------------------------------
Roberto Congiu
        Alchemy Communications
                LA California USA






Newsgroup: it.comp.lang.perl
Titolo: [Hello World]

qualcuno mi puņ passare un esempio tipo hello world in perl ?
grazie
--
web:    
http://gnaffy.tripod.com/
e-mail: Gna...@Wappi.com
e-mail: 
bmq...@tin.it
ICQ#:  76488613

grazie
print "Hello Word\n";
-- 
Saluti,
Giancarlo

 Giancarlo
mhhh, hai sbagliato, il coso corretto e'
print "Hello World\n"; :)))))
(poi ci andrebbe anche #!/usr/bin/perl nella prima riga, ma credo che
valga solo per linux)
bau

 grazie
#!/usr/bin/perl
print "Hello world!\n";
ciao
Buttha
-- 
* Per rispondere in email rimuovere la prima i dall'indirizzo
* La fine e' vicina. Chiama la polizia.

 qualcuno mi può passare un esempio tipo hello world in perl ?
	$ echo '!dlrow olleH' | perl -e -p '$_=reverse'
	Alla prossima,
		Marco

 	$ echo '!dlrow olleH' | perl -e -p '$_=reverse'
Non funziona :)
E' -p -e , non -e -p
Ci vuole piu' cura nei particolari...
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 ha scritto nel messaggio
news:8s23e3$cee$1...@nslave3.tin.it...


scusate, ma se non mettete l'HEADER che cosa volete vedere mai su browser???
Ma c'e' una legge che obbliga a far funzionare gli script in perl solo come
cgi????
-- 
Saluti,
Giancarlo

 ha scritto nel messaggio
news:971373748...@news.inet.it...

Newsgroup: it.comp.lang.perl
Titolo: Ci sono anche io

Salve a tutti.
Da qualche giorno mi sono avvicinato all'interessantissimo mondo del Perl.
In futuro mi piacerebbe prendere parte a questo interessantissimo ng, prima per apprendere il più possibile poi per riuscire a dare anche il mio contributo.
gallus

 poi per riuscire a dare anche il mio contributo.
Volentieri. :-)
A presto allora.
Inviato da 
www.mynewsgate.net

 [...]
Benvenuto :)
ciao,
S.
-- 
Stefano Rodighiero      |  
http://larsen.perlmonk.org
mailto:
lar...@perl.it
   |  
http://www.perl.it

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

Prima di tutto buona anno a tutti.
Sono nuovo nuovo di questo news e mi sto avvicinando a perl perchè mi sto
divertendo con apache.
detto questo sto facendo uno script e mi servirebbe sapere come faccio ad
ottenere la data del sistema , con linux non ho problemi ma con windows ?
grazie a tutti
Marco


Usa localtime(). Il codice che segue contiene tutte le voci ritornate dalla
funzione e gli aggiustamenti necessari.
Buon Anno
gfb
@GSETT = qw(Dom Lun Mar Mer Gio Ven Sab);
($s,$m,$h,$gg,$mm,$aa,$gs,$ga,$ol) = localtime(time);
printf ("HMS: %02d:%02d:%02d\n",$h,$m,$s);
++$mm;   # mesi sono numerati da 0 a 11
++$ga;   # giorni dell'anno numerati da 0
$aaaa = $aa+1900; # anno di 2 cifre 00=1900  2001 ritornato come 101
printf ("%-3s.  %02d/%02d/%04d - ",$GSETT[$gs],$gg,$mm,$aaaa);
printf ("%do giorno dell'anno\n",$ga);
printf ("ora legale %d\n",$ol); # valore booleano
exit;

 wrote in message
Pf046.2934$FF1.2...@twister1.tin.it...


Newsgroup: it.comp.lang.perl
Titolo: Ordinare un hash of hashes

Ciao,
ho messo su una struttura di hashes abbastanza articolata. Ora avrei
necessita' di ordinarlo secondo una determinata chiave.
Qui sotto ho semplificato un po' il problema, mi date un'occhiata se
la soluzione vi sembra sufficientemente ottimizzata visto che ho tra
le mani qualche decina di migliaia di valori? :-)
$b{'1'}{'ID'}="0002";
$b{'2'}{'ID'}="0001";
$b{'3'}{'ID'}="0003";
$b{'5'}{'ID'}="0002";
$b{'4'}{'ID'}="0005";
$b{'6'}{'ID'}="0090";
# sort per ID
foreach $key (sort {$b{$a}{'ID'}<=>$b{$b}{'ID'} } keys (%b))
{print $key.") ".$b{$key}{'ID'}."\n";}
...ottengo quindi, come previsto...
2) 0001
1) 0002
5) 0002
3) 0003
4) 0005
6) 0090
Grazie!
Daniele

 le mani qualche decina di migliaia di valori? :-)
A me sembra tutto OK ;-)
Posso giusto avanzare un paio di suggerimenti, a livello di 
microottimizzazione:
1.
puoi provare a dichiarare esplicitamente uno dei due seguenti pragma:
use sort '_quicksort';
use sort '_mergesort';
e vedere quale si comporta meglio (se hai perl > 5.8 l'algoritmo di 
sorting di default dovrebbe essere mergesort, quindi puoi provare 
quicksort e vedere come si comporta - il prevalere dell'uno o dell'altro 
dipende essenzialmente dalla distribuzione della chiave di ordinamento).
L'algoritmo in uso lo puoi vedere con la funzione sort::current().
2.
Puoi provare ad usare il modulo esterno Sort::Key
http://search.cpan.org/~salva/Sort-Key/
che sembra sia velocissimo (però è un modulo XS, con tutto quel che ne 
consegue in termini di portabilità).
Ciao,
Emanuele.
Newsgroup: it.comp.lang.perl
Titolo: Commenti multilinea

Scusate la domanda banale.E' possibile fare dei commenti multilinea?
Ho provato con /* */ (stile C) ma ho un errore.
Grazie

non è possibile
--
-.. --- -- .. --.. .. ---
-.. . -- .. -.-. .... . .-.. .. ...

 Ho provato con /* */ (stile C) ma ho un errore.
   Per forza, siamo in it.comp.lang.perl, non in it.comp.lang.c.
<code>
	=pod
	This is a multi-line
	comment.  And a slice
	of documentation, too.
	=cut
</code>
	$ perldoc perlpod
-- 
Alla prossima,
Marco

 =cut
ingegnoso! Non avevo mai pensato di usare la documentazione pod come un
commento multilinea, sarà perché odio i moduli con documentazione
spezzettata fra il code :-)? Nei miei moduli uso esclusivamente la
documentazione in blocco dopo un __END__ o addirittura in file .pod
separato, comunque magari finalmente farò uso dell'odioso =pod =cut come
commento invece che come doc :-)
ciao


commento multilinea
   perldoc -q large comment
Ciao.

>    perldoc -q large comment
non so se non l'ho mai letto, o se me lo sono solo dimenticato :-/...
comunque l'età non perdona :-(


 ha scritto nel messaggio
news:lsnvsuosb4eaoo73q...@4ax.com...


 wrote in message
news:aqpbut$hmc$1...@lacerta.tiscalinet.it...


non č possibile
Oltre ad usare i comandi =pod, si puo` usare il modulo Acme::Comment,
di Jos Boumans, che a sua volta si basa su Filter::Simple.
ciao
Stefano

di Jos Boumans, che a sua volta si basa su Filter::Simple.
In effetti non si puo` intendere come un modo vero e proprio per 
scrivere commenti multi-linea. E` piu` un proof-of-concept, e una
dimostrazione d'uso dei filtri.
ciao
Stefano

 dimostrazione d'uso dei filtri.
comunque Acme::Comment č bellino! Non sapevo nemmeno che esistesse. In
effetti, esteticemente mi piace molto di piů che =pod =cut, solo che non
credo proprio sia altrettamnto rapido sia per esecuzione, sia per coding
(use Acme::Comment;)


invece sono un commento :-)
Infatti quelli non sono commenti. E' codice, che occupa memoria e viene
pure eseguito. Sintatticamente abbastanza discutibile, direi.
Ciao.

     
http://dev.perl.org/rfc/5.html#WHAT_S_WRONG_WITH_POD_
   E` rincuorante il fatto che, qualcun altro, oltre me, si sia posto la 
fatidica domanda: "Is it needed?". In effetti, se non in fase di debug 
per eliminare dalla compilazione parti di codice, per la qual cosa lo 
pseudo-POD va piu` che bene, non vi e` alcun motivo per utilizzare il 
commento multilinea posto che (a) per un numero non elevato di linee e` 
sufficiente la sintassi single-line ('#') e (b) se le linee diventano 
molte, piu` che con un commento, sembrerebbe aversi a che fare con un 
brano di documentazione, sicche`... ;)
-- 
Alla prossima,
Marco
Newsgroup: it.comp.lang.perl
Titolo: Approssimazione

In Perl,come posso approssimare un numero float di questo tipo
5.1234
visualizzando solo le ultime 2 cifre dopo la virgola ?
Scusate la domanda banale
Grazie

perldoc -f sprintf
--
perl -MLWP::Simple -e "getprint(' 
http://perl.4pro.net
 ')"

 visualizzando solo le ultime 2 cifre dopo la virgola ?
                        ^^^^^^
intendevi 'prime' forse...? :-)
 
con 'printf' e 'sprintf':
my $arr = sprintf("%.2f", 5.1234);
printf "%.2f", 5.1234;
 
	- Enrico

Newsgroup: it.comp.lang.perl
Titolo: parsare ora (hh:mm)

Salve,
        ho una stringa che rappresenta l'ora corrente in formato tipo: 
"6:32pm" vorrei riportarlo in formato timestamp così posso po 
aggiungere/togliere un ora (+3600 secs)
ho  visto vari moduli cpan ma parsano solo le date e il time ma non da queto 
formato...
grazie 

 queto formato...
Neanche Date::Manip ?
Pleg 

 Neanche Date::Manip ?
Sembra un ottimo modulo, ho controllato tutte le dependencies ma al momento 
di parsare la stringa (qualsiasi stringa) mi fa: can't locate timezone,,,, 

 timezone,,,,
Sei sotto windows? :)
Ho avuto lo stesso problema, mi pare di ricordare che la soluzione fosse 
specificare la timezone a mano (ma potresti avere problemi quando ti cambia 
l'ora legale/solare... deve'esserci una soluzione migliore, e' che non la 
conosco). Ad es. io ho
use Date::Manip;
Date_Init("TZ=PDT");
Imposta la tua timezone, e sei a posto!
Pleg

 Imposta la tua timezone, e sei a posto!
Ok, funziona alla perfezione!
Ora perň ti spiego, ho 4:30pm devo aggiungere 5 ore per poi stampare 9:30pm
print scalar localtime( UnixDate("4:30pm","%s") + ( 3600 * 5 ) );
come faccio a ri-stampare nel formato hh:mm/pm ?
grazie

 come faccio a ri-stampare nel formato hh:mm/pm ?
 ho risolto cosě:
Date_Init("TZ=CEST");
my ($min,$hr) = ( localtime( UnixDate("5:30pm","%s") ) )[1..2];
my $ampm = "am";
if ($hr == 12) { $ampm = "pm" }
if ($hr == 0) { $hr = 12 }
if ($hr > 12)
{
   $ampm = 'pm';
   $hr = ($hr - 12);
}
print "$hr:$min$ampm\n";