mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.perl
Titolo: Inpacchettare i bit...

Ciao, (sono sempre io :-)
ok, riesco a leggere i dati ed averli come binary di 8 bit.
Ma ora ho un altro problema.
In alcuni casi, devo "accorpare" i primi n bit di ogni byte uno di 
seguito all'altro, in modo da avere un numero molto grande.
Es. ho
byte1 = 10110101
byte2 = 11101011
Volendo accorpare i primi 5 bit, partendo da destra avrei:
byte1_ = 10101
byte2_ = 01011
Il risultato dovrebbe essere 10101.01011 che risulterebbe essere il 
numero voluto.
Ho come l'impressione che la cosa si possa fare con la unpack (o la 
pack?) ma non ho la minima idea di quale "pattern" usare.
PS: se volete sapere cosa diavolo sto facendo, vi informo che si tratta 
di codice per realizzare un codec ASN.1 in Perl.

 seguito all'altro, in modo da avere un numero molto grande.
In generale, se devi fare manipolazioni complesse su stringhe di bit, 
anche di lunghezza arbitraria, usa Bit::Vector
http://search.cpan.org/~stbey/Bit-Vector-6.4/
Difficilmente potrai trovare qualcosa di più potente, flessibile e anche 
semplice da usare (mi riferisco a qualsiasi linguaggio/libreria).
Ciao,
Emanuele.

 Es. ho






$b1 = "\xb5"; # in binario 10110101
$b2 = "\xeb"; # in binario 11101011
$mask1 = 31; # in binario 00011111 
$mask2 = 31; # in binario 00011111 
$risultato = ((ord($b1) & $mask1) << 5 ) | (ord($b2) & $mask2);
print $risultato , "\n";
# stampa 683 cioe' 1010101011 in binario
# per metterlo in una word 16 bits little-endian
$littleendian16bits = pack("v", $risultato);
# o in tipo 16 bits nativo del sistema. nota che ho usato S maiuscola
$nativeuint16bits = pack("S", $risultato);
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 $nativeuint16bits = pack("S", $risultato);
Grazie mille.
Avevo intuito il lavoro di mask e shift, solo che... l'ho fatto 
lavorando su valori binari rappresentati in asci:
$bin =sprintf("%0b",$b1);
e relativi smanettamenti con substr...
Credo che sostituirò il tutto col tuo codice che, immagino, lavorando 
sui bit, sarà anni luce più veloce...
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: catturare form POST

Salve,
     evitando di usare la 
cgi.pm
 vorrei sapere come catturare i dati in 
arrivo da una form html ad esempio un file in upload...
grazie

 arrivo da una form html ad esempio un file in upload...
Il formato "normale" (application/x-www-form-urlencode) č in sostanza lo
stesso della query string delle richieste GET. 
Nel caso di upload di file, perň, le cose sono piů complicate. Il formato
usato č "multipart/form-data" e il parsing (se devi implementare tutto da
zero) non č cosa di due righe. Studiati l'implementazione di
"read_multipart", che trovi dentro CGI.pm e poi replica quello che ti
interessa.
Max

 interessa.
ho fatto una prova così:
#!/usr/bin/perl
use strict;
use warnings;
my $line;
open (DD, ">temp.txt");
while ( read(\*STDIN, $line, 1024) )
{
   print DD "$line\n";
}
close(DD);
print "Content-type: text/plain\n\n";
print "ok!\n";
e mentre i dati in upload dal form html arrivano, il file "temp.txt" 
aumenta di peso.
Da questo punto avrei voluto un parere su come redirigere il contenuto 
di $line ad un server UPD che è in ascolto in locale...
sempre se si puo fare...

 di $line ad un server UPD che č in ascolto in locale...
il fatto č che vorrei simulare il funzionamento di picostreamer
http://it.wikipedia.org/wiki/Picostreamer
credo che a ogni ciclo di:
while ( read( \*STDIN, $line, 1024) )
mandi pacchetti upd ad un server udp o roba del genere, mi piacerebbe 
capirne il funzionamento cosě da poter superare il mio firewall...
cmq, dato che un mp3 ha un flusso dati di 15Kb al secondo la cosa 
migliore da fare sarebbe:
 while ( read( \*STDIN, $line, 15000) )
 {
    # ... manda questo chunk di dati al server upd ...
    sleep 1;
 }
qualche cosiglio??
Grazie

Newsgroup: it.comp.lang.perl
Titolo: Problema con Win32::Service

Ho un problema con Win32::Service::StopService().
La maggiorparte dei servizi di NT/2000 ha un nome tipo
EventSystem, PolicyAgent, e via andare...
La cosa che li accomuna e' che non ci sono spazi nel mezzo.
Tranne Lotus Domino Server...
Infatti i nome del servizio e':
Lotus Domino Server (LotusDominoData)
E StopService() non me lo prende nemmeno se glielo metto
esplicito negli argomenti.
Siccome lo script deve fermare una lista di servizi non mi
sembra bello fermarli tutti con StopService e poi usare
una system con net stop per Lotus Domino.
Qualche suggerimento?
Grazie in anticipo.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 .....

Newsgroup: it.comp.lang.perl
Titolo: carattere a forma di "quadratino pieno"?

Sul server su cui c'è il mio sito girano solo script scritti sotto Linux in
cui al posto di "vai a capo- invio" c'è uno strano carattere a forma di
"quadratino pieno".
Esiste un modo per convertire automaticamente i miei Script CGI in Perl
scritti
sottoWindows con quello strano carattere Linux.
Se non c'è un modo di farlo automaticamente come posso riprodurre questo
carattere sotto Windows??
Grazie 1000 in anticipo.
Ciao, Un Amico

carattere sotto Windows??
Io credo che tu non debba fare proprio nulla: scrivi il tuo script perl
cosi` come ti viene, e si piantera` senz'altro per tutt'altri motivi che il
"quadratino nero"; ci sono comunque utilita` per convertire file di testo
DOS in file di testo Unix e viceversa (mi pare, guarda caso, dos2unix e
unix2dos).
Ciao.

Grazie.
Ciao, Un Amico

Newsgroup: it.comp.lang.perl
Titolo: apertura di una pagina web sul browser corrente

Saluti a tutti,
sono alle prime esperienze con Perl e il mio problema è questo: ho 
scritto un CGI che prende i dati da una form html e vorrei che, sulla 
base della elaborazione di questi dati, visualizzasse sul browser 
dell'utente una pagina da un url esistente.
Non vorrei usare un Javascript o simili: qualcuno sa se esiste qualche 
metodo per fare questo?
Grazie a tutti
Stefano

 metodo per fare questo?
Sě:
print "Location: 
http://www.url_che_ti_pare.com
\n\n";

Ti disturbo un'altra volta: se l'URL č in una variabile $home (presa da 
un database), io userei:
print "Location: $home\n\n";
ma non funziona!
Sai dirmi perchč?
Grazie mille
Stefano


 Stefano
La Location deve essere la primissima (ed unica) cosa ad andare in stampa
(forse avevi già stampato il MIME "Content-type: text/html\n\n" ?) altrimenti
non funziona.
Newsgroup: it.comp.lang.perl
Titolo: Grafico con GD::Graph

Salve a tutti gli adepti di PERL. Ho un cgi che compie diverse
operazioni, tra le
quali
quella di stampare un grafico in formato png creato con il modulo
GD::Graph. In
navigator però l'immagine non viene stampata (il file viene creato
regolarmente). Ottengo solo l'icona dell'immagine. Ecco un breve
frammento di
codice. Sarà forse l'istruzione binmode? Prima ho stampato l'header che
identifica il tipo text/html.
my $graph = GD::Graph::pie->new(400,300);
my $gd = $graph->plot(\@data);
open (IMG, '>img.png') or die $!;
binmode IMG;
print IMG $gd->png;
Ringrazio per l'imput.
Giuseppe Ricioppo.

identifica il tipo text/html.
L'header deve essere di tipo image/png.
	Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
ICQ# 76660101
==> FAQ di it.comp.lang.perl: 
http://www.borders.it/perl/faq/
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

 L'header deve essere di tipo image/png.
 Si ma prima ho l'esigenza di stampare del codice html! Come posso una
pagina html con il grafico?
Giuseppe

 pagina html con il grafico?
Stampi la pagina regolarmente, con dei tag IMG fatti cosi`:
<IMG SRC="/bin/aprimmagine.cgi?id=83">
Lo script aprimmagine.cgi cerchera` sul disco l'immagine appropriata
(quella corrispondente ad una fantomatico ID 83 in questo caso) e
la servira`, specificando image/png come tipo.


pagina html con il grafico?
deve funzionare per forza... in <img src=...> stai attento al percorso
-- 
     #@@@ missinglink on slackware 7.1 ###
     ####       member of telug        #@@
Newsgroup: it.comp.lang.perl
Titolo: Problemino con i processi via Cron

Ciao a tutti, premetto che non č necessariamente un problema di programmazione
perl e quindi mi scuso anticipatamente del semi-OT.
Antefatto:
Ho uno script perl per eseguire ogni giorno dei mirror di partizioni di HD, su
altre partizioni, su un sistema Linux. Lo scheduling viene fatto attraverso
_cron_. Lo script utilizza il comando di shell _dd_ per generare il mirror,
quindi chiamo il comando _fsck_ per controllare la partizione appena copiata
(tralascio tutte le parti relative a controlli e ad altre operazioni, tenendo
conto che queste sono ininfluenti per le azioni che ho appena descritto)...
Le chiamate ai comandi avvengono via backquote cosě da catturarne l'output.
Il problema:
lo script se lanciato _a mano_ funziona correttamente se lanciato da cron non
funziona correttamente, per l'esattezza la chiamata ad _fsck_ non č efficace:
nel senso che la partizione risulta non controllata ed eventualmente non
corretta...
Qualcuno puň darmi una dritta?
Grazie, 
	Gundam, che nel frattempo continua a _ruminare_ ;) il problema.

 corretta...
Ma chiami fsck con il path completo?
Valerio

 funziona correttamente, per l'esattezza la chiamata ad _fsck_ non è efficace:
[snip]
Il problema era una questioni di PATH... nonostante cron giri come root non ha
gli stessi PATH dell'utente root.
La soluzione è stata quella di utilizzare dei percorsi assoluti per la
chiamata dei comandi di sistema.
Ciao
	Gundam

 Ma chiami fsck con il path completo?
No, infatti il problema era proprio quello...
scanso futuri equivoci tutti gli script/comandi di shell li chiamerò con path
completo. ;)
Ciao e grazie.
	Gundam
Newsgroup: it.comp.lang.perl
Titolo: Directory di lavoro

come si fa (se si puo')  in  Perl a spostare la dir di lavoro ?
Mi serve perche' ho un cgi con un require'..';
se lo lancio dalla dir corrente mi trova i require se lo lancio da altre
dir.
cerca il require nella dir dove e' stato lanciato!
Mi spiego meglio :
A.cgi  in cgi-bin/:
#########
system( perl /sub/B.cgi);
########
B.cgi in cgi-bin/sub/:
######
require '
r.pl
';
# '
r.pl
' e' nella stessa dir di B  : cgi-bin/sub/
######
in questo modo non funziona! Dovrei mettere:  require 'sub/
r.pl
'
ma se poi lo uso da un altro cgi nella stessa dir  ovviamente non va !
Come posso risolvere ?
Grazie:)

 ovviamente non va ! Come posso risolvere ?
Ad esempio mettendo il percorso assoluto del file che devi includere con il
"require".

 come si fa (se si puo')  in  Perl a spostare la dir di lavoro ?
[cut]
Che confusione ...
Potresti provare a utilizzare due librerie "ponte" ponte.lib
in cgi-bin/ e cgi-bin/sub/
che caricano i moduli che servono ai cgi.
Non so se mi sono spiegato bene ...
 Raffaello

 Mi serve perche' ho un cgi con un require'..';
Non devi cambiare la directory di lavoro, devi aggiungere il percorso che ti
interessa in @INC. Questo lo puoi fare principalmente in due modi:
utilizzando "use lib" o impostando la variabile di ambiente PERL5LIB.
Consultare:
        perldoc perlvar
        perldoc lib
        perldoc -f require
(diponibili anche su 
http://www.perldoc.com
.)
Max     

 "require".
Intanto grazie a tutti!:-)
Poi a proposito del percorso assoluto : come lo ottnego  ?

 Poi a proposito del percorso assoluto : come lo ottnego?
Se ho inteso correttamente, prova a dare un'occhiata al modulo 
File::Basename.
Ciao,
-- 
+--------+ | ASCII ribbon campaign ( ) | 
www.autistici.org/kral
|  kral  | |  - against HTML email  X  |
+--------+ |              & vCards / \ | my gpg id = 0x7C946947

"while()" <fjh...@fjdjf.gjhg> ha scritto nel messaggio
news:JzZXc.61748$
1V3.1...@twister2.libero.it

Se non lo sai tu  dove hai messo il file che vuoi includere... :-)
Intendo qualcosa del tipo
require "/home/utente/programma/lib/
cippalippa.pl
"

 File::Basename.
Spero non vada installato o sono fregato! :-)
Grazie

 Grazie
Dovrebbe giŕ esserci nella distribuzione standard di perl, se non erro...
In questo caso:
   use File::Basename;
   my ($name,$path,$suffix) = fileparse($0);
trovi la path dello _script_ in $path. (Anche se non č detto che sia la 
path in cui sei realmente.)
Altrimenti potresti fare (su sistemi unix-like, perň)
my $path = qx{ pwd };
oppure (su sistemi Win32)
my $path = qx{ cd };
my 2 cents,


 my 2 cents,
Grazie 1000!!! Questi si che sono aiuti! :-)
Newsgroup: it.comp.lang.perl
Titolo: cosa significa:"s/%(..)/pack("c",hex($1))/ge;"

cosa significa:"s/%(..)/pack("c",hex($1))/ge;"
sostituisce i due caratteri seguiti da '%' con... cosa?
cosa fa pack("c",hex($1) ?
cosa significa /ge ?
Cosa significa:
($item,$price)=split(/:/,$_,2);
cosa fa quel '2'? 
perchč tre parametri? 
Grazie in anticipo, Mario.

 perchè tre parametri?
Perche' non leggi i f* manuali?
perldoc -f pack
perldoc -f hex
perldoc -f split
perldoc perlre
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: hash e DB

Questo programma funziona solo se l'hash %group non viene collegato al
database. C'e` un modo di gestire un database di array? Nel Camel Book non
trovo niente che lo vieti.
Inoltre: come si usa il pod2html del perl 5.004 per creare il tree completo
di documentazione?
use Fcntl;
use AnyDBM_File;
my $groupdb="db";
tie (%group, "AnyDBM_File", $groupdb, O_RDWR|O_CREAT, 0644)
	or die "Impossibile aprire $groupdb: $!";
$group{"1"}=["dato1", "dato2"];
my $i;
foreach $i (sort keys %group) {
	print "$i => ". $group{$i}[0] ."\n";
}
untie %group;
-- 
ciao, | [Per rispondere togli "toglimi" dal mio indirizzo.]
Marco | * The Internet is full. Go away.  -- Joel Furr *

 untie %group;
Bella FAQ. Ma vale la pena rispondere lo stesso :)
I database su file possono contenere solo hash semplici, perche' di 
fatto il tuo hash non contiene l'array ma un suo 'reference' e se lo metti
su file non ti serve a nulla.
Infatti, se fai girare il tuo script con -w si lamenta di una variabile non 
inizializzata, e se stampi $group{$i} ti mostra un reference.
Una possibile soluzione e' quella di mettere nell'hash una versione
"codificata" dell'array, ad esempio il risultato di un 'join', e
poi usare uno 'split' per recuperare i dati.
Ovviamente il join deve essere fatto usando un carattere che non compare 
nei dati.
Nel tuo caso, ad esempio:
$group{"1"}=join ':',"dato1", "dato2";
my $i;
foreach $i (sort keys %group) {
        @array = split /:/, $group{$i};
	print "$i => ", $array[0] ,"\n";
    }
 
Comunque, credo che esista un modulo su CPAN che permetta l'uso di strutture
complesse nell'hash del database. Si chiama MLDBM, credo. Non garantisco il
funzionamento. 
Per quanto riguarda pod2html, mi sembra di ricordare di aver avuto anche io
qualche problema. Comunque su CPAN c'e' un file con l'intero albero della
documentazione gia' convertito. Dacci un occhiata.
Maurizio
-- 
Maurizio M. Munafo' |                          
E-mail:mun...@hp0tlc.polito.it
 
--------------------+---------------------------------------------------------
   	     (o_    |				   - Gentile or Jew,
   (o_  (o_  //\    | O you who turn the wheel and look to windward,
   (/)_ (/)_ V_/_   | Consider Phlebas, who was once handsome and tall as you.

$group{"1"}=["dato1", "dato2"];
Devi usare Data:Dumper (dovrebbe esserci anche un modulo che
usi con tie che lo fa per te...).
lupus
Newsgroup: it.comp.lang.perl
Titolo: Perl CGI da dove iniziare??

Ciao raga, mi indicate da dove posso iniziare per imparare a programmare in
cgi?
Esempio volevo creare un'applicazione con interfaccia Web che tramite dei
moduli html mi permetteva di fare un backup indicando cartella_sorgente e
cartella_destinazione (una cosa simile l'ho fatta in bash) oppure inserendo
username e e-mail fa un backup e invia una e-mail di conferma che il backup
è stato effettuato...ecc.....
Grazie mielle..
Michele

 cgi?
Ecco alcuni link:
http://users.easystreet.com/ovid/cgi_course/
Il 12o capitolo di Beginning Perl: 
http://learn.perl.org/library/beginning_perl/
In italiano:
http://space.tin.it/computer/gciabu/cgi/cgi.htm
http://net.supereva.it/programmarein/perl/cgi.htm

 Michele
Prova questo: 
http://www.html.it/cgi/
(io li reputo molto validi i corsi di questo sito[ 
www.html.it
 ])
Ciao Paolo

Newsgroup: it.comp.lang.perl
Titolo: sezionare testo

piccolo problema con del testo. 
Ho un file di testo da qui voglio estrapolare i primi 1000 caratteri 
(senza tagliare l'ultima parola)...poi in fase di print devo aggiungere 
qualcosa tipo [ continua >> ] o [...] 
qualche idea? (il problema sarebbe non tagliare una parola se supera i 
1000 caratteri... 
ciao!


Mi viene in mente solo una idea malsana con le RE. Ho fatto un test con i
primi 10 caratteri e funzionava.
$testo=~ /^(.{1,1000})(.*?)\b/;
$nuovotesto=$1.$2;
Al limite usi substr per i primi 1000 caratteri, poi controlli i 20
caratteri dopo con le RE e l'uso di \b.
\b indica il confine di una parola. b sta per Boundary.
Ciao ciao! ^^

 $nuovotesto=$1.$2;
Grandissimo!!! purtroppo non funziona se nella stringa ci sono dei \n
o provato ad aggiungere \bs alla fine dell'espressione ma non funge...
che fare?
(Gli \n non posso eliminarli...)

Larry ha scritto:

ritengo che tu debba scrivere:
$testo=~ /^(.{1,1000})(.*?)\b/m;
dicendo con m che la stringa va considerata composta da più righe.
-- 
-- Marco Allegretti --
http://www.shishii.com

 wrote:
il codice finale è:
if(length($topic_text) > 500)
{ 
  $topic_text =~ /^(.{1,500})(.*?)\b/s;
  $topic_text = $1 . $2 . ' [...]';
}
grazie a LordSaga640 e Shishii
Ciao!
Newsgroup: it.comp.lang.perl
Titolo: AIUTO - il perl non sa fare le sottrazioni ?

Ciao a tutti
oggi mi è successa una cosa a dir poco incredibile:
sembrava una normale semplice operazione, ma...
========== CODICE SORGENTE ==========
$a=22.98 - 22.72;
print $a;
=====================================
Risultato: 0.260000000000002
???
Qualcuno mi sa spiegare come mai la variabile
$a è stata caricata con 0.260000000000002
piuttosto che semplicemente 0.26 ?
Io sto utilizzando il perl
v5.6.0 built for i386-linux
se possiedi un'altra versione del perl
mi puoi fare la cortesia di verificare se anche
a te succede la stessa cosa ?
Grazie a tutti quelli che mi aiuteranno
a capire la causa di questo curioso errore.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 piuttosto che semplicemente 0.26 ?
Non e` incredibile. Ti consiglio di leggere almeno le prime pagine di
"What Every Computer Scientist Should Know About Floating-Point Arithmetic":
http://cch.loria.fr/documentation/IEEE754/ACM/goldberg.pdf
(
http://cch.loria.fr/documentation/IEEE754/ACM/goldbergSUN.ps
: qui ce n'e`
una versione un po` piu` bellina da stampare).
Cosi` saprai come mai, ad esempio:
22.98 - 22.71 - 0.01 != 22.98 - 22.72
ciao
Stefano

 Stefano
Ciao Stefano,
grazie per la tua celere risposta,
appena avro' un po' di tempo
leggero' i documenti che mi hai consigliato...
Io dovrei comunque risolvere il problema
del calcolo *** 22.98 - 22.72 = 0.26 ***
Come si puo' fare in perl ?
Ciao
Roberto


 Come si puo' fare in perl ?
Ci sono le faq, e molta documentazione: 
http://www.perldoc.com
In particolare:

 Come si puo' fare in perl ?
Ci sono le faq e molta documentazione su 
http://www.perldoc.com
In particolare:
http://perldoc.com/perl5.6.1/pod/perlfaq4.html#Why-am-I-getting-long-decimals-(eg%2c-19.9499999999999)-instead-of-the-numbers-I-should-be-getting-(eg%2c-19.95)-

 Come si puo' fare in perl ?
printf "%.2f", (22.98 - 22.72);
Cosi` lo arresti al secondo decimale.
perldoc -f printf
Bye,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 Cosi` lo arresti al secondo decimale.
Per la precisione lo arrotondi. Nell'esempio specifico il risultato e` il 
medesimo, ma con un decimale tipo 8.6534 sprintf() ti ritornerebbe 9 e non 
8. Se arrtondare e` quello che si desidera, bene. ;-) Se invece si vuole 
semplicemente ottenere la parte intera, c'e` int().
        Michele.
Newsgroup: it.comp.lang.perl
Titolo: Principiante e cookie

Dopo aver letto il tutorial sui cookie di 
cgipoint.it
 e dopo aver vivitato
vari siti purtroppo non sono riuscito a creare ancora quello che volevo.
Volevo chiedervi, se mi potete spiegare come si fa questo seguente script:
1)Quando parte deve guardare sul computer dell'utente se ha il cookie o no
Se c'è l'ha deve rilevare i due dati (username e password) e verificarli
tramite un file di testo se no mandarlo a una pagina per creare il cookie
2)Devo creare uno script che crea i cookie
PS
Il file di testo si trova sul server ed ha un formato TXT
GRAZIE IN ANTICIPO

Volevo chiedervi, se mi potete spiegare come si fa questo seguente script:
Il tutorial di 
cgipoint.it
 ti spiega come funzionano i cookie e come
gestirli "a mano". Ti consiglio di dare uno sguardo alla documentazione
del modlo CGI.pm con:
perldoc CGI
In esso troverai dei comodi metodi per leggere e scrivere i cookie.
	A presto, Michele.
-- 
Michele Beltrame
m...@io.com
http://www.io.com/~mick/
ICQ# 76660101
==> Visita il sito di it.comp.lang.perl: 
http://www.perl-it.org
==> Sei del triveneto e vuoi unirti ai Perl Mongers? Scrivimi!

Newsgroup: it.comp.lang.perl
Titolo: Attach Retrieve

Buongiorno a tutti,
avrei la necessità di dover scaricare dei messaggi da un indirizzo di
posta elettronica...
Per fare ciò ho sempre usato Mail::POP3Client che fino ad ora si è
dimostrato ottimo.
Il problema è che adesso dovrei anche recuperare gli allegati dei
messaggi e copiarli in una directory predefinita...
Quale modulo posso utilizzare per questo scopo?
Che modulo mi permette di riconoscere che la mail ha degli allegati ed
eventualmente gestirli separatamente?
Grazie,
      nathanvi
-- 
Per risposte private: 
vitto....@SPAMMAREtiscali.it
sito: 
http://nathanvi.it
FAQ OpenOffice: 
http://openoffice.nathanvi.it
Centro Studi Raffaello:
http://centrostudiraffaello.it/sito/
Inviato da 
www.mynewsgate.net

eventualmente gestirli separatamente?
Mime-Tools, un insieme di moduli, per la verità. In particolare, direi,
Mime::Parser.
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: Changelog perl 5.0X - 5.6.X

Ho fatto un upgrade del sistema (linux Debian) e mi sono visto il perl
balzare dalla versione 5.053 alla 5.6.1.
Ho dato un'occhiata al changelog, ma mi riporta i cambiamenti dalal
versione 5.6.0 alla 5.6.1, e nelle varia man pages non si fa mai
riferimento al passaggio 5.0 -> 5.6.
Ho cercato un po' su 
perl.com
 ma senza successo: qualcuno saprebbe dove
trovare tale changelog senza dovermi scaricare il sorgente del 5.6.0?
TIA
--ev

 
Su 
www.perldoc.com
 trovi i manuali (quindi anche i perldelta) di tutte le
release comprese tra la 5.004_05 e la 5.6.1.
Max
Newsgroup: it.comp.lang.perl
Titolo: Perl e C++

Salve a tutti.
Sono Luca e sono nuovo di Perl. Ma visto che mi piace partire dalle
cose complicate vi faccio la seguente domanda.
Ho delle librerie scritte in C++ (dll). E mi piacerebbe implementare
un interprete che richiama le mie librerie.
Ovvero, la mia libreria C++ mi da delle funzioni tipo:
 
	inizializza();
	leggi(x)
	scrivi(y,z);
	....
Vorrei poter scrivere un file comandi "file.cmd" tipo:
	inizializza();
	leggi(A);
	if A == 5 scrivi(B,6)
	....
E eseguirlo con una chiamata tipo:
	interpreta file.cmd
Per far questo dovrei perň poter vedere il C++ all'interno di Perl.
Cio' provato ma non ci sono riuscito. Potete darmi qualche dritta?
Le mie librerie sono scritte in Borland C++, mentre sotto Windows
utilizzo ActivePerl.
Grazie Luca	

Cio' provato ma non ci sono riuscito. Potete darmi qualche dritta?
Un modo potrebbe essere usare Win32::API, e tanta pazienza in perl. Un
altro potrebbe essere usare OLE, ActiveX, .Net o comunque si chiami questa
settimana, e tanta pazienza in C++.
Nel primo caso, tutto quello che serve lato C++ è che le funzioni della DLL
siano pubbliche. Nel secondo caso, dovrai soprattutto progettarti bene i
tuoi oggetti e relativi metodi, e creare la libreria OLE, ActiveX, .Net o
comunque si chiami questa settimana.
Un altro sistema ancora potrebbe essere incorporare un interprete perl
nella tua applicazione, così che non è più perl a dover vedere il tuo
codice C++, ma il tuo codice che vede perl. Vedi perlembed.
Ancora un altro sistema potrebbe essere scrivere dei moduli perl in C++.
Vedi perlmod, perlxs, perlapi e altro ancora.
Ciao.

codice C++, ma il tuo codice che vede perl. Vedi perlembed.
Questa e' stata proprio la mia idea ed anche la strada che ho tentato
(mi piace anche il nome), pero' mi sono trovato di fronte a due
problemi, uno di natura teorica ed uno di natura pratica.
Problema teorico:
Come faccio a dire al mio interprete incorporato che le funzioni
leggi(x) e scrivi(y,z) sono funzioni c e non perl?
Problema pratico:
Ho provato a seguire le istruzioni di perlembed ma compilando il primo
semplice esempio viene generato l'errore:
	[C++ Error] win32.h(313): E2303 Type name expected
	In win32.h alla riga 313
 
	extern int		my_fstat(int fd, Stat_t *sbufptr);
Io utilizzo Borland C++ 5.0 e ActivePerl 5.8.
Grazie 
Luca

Io utilizzo Borland C++ 5.0 e ActivePerl 5.8.
Mi sa, ma è molto più probabile ottenere qualche risultato con un
compilatore Microsoft. La regola è "COMPILE THE PROGRAMS IN EXACTLY THE
SAME WAY THAT YOUR PERL WAS COMPILED", e mi sa che "lo stesso modo" inizi
dall'utilizzare lo stesso compilatore (che, per ActivePerl, è un Visual
qualcosa di Microsoft).
Per il resto, ha l'aria di essere il solito errore di inclusione: forse hai
dimenticato di includere qualcosa, o hai incluso qualcosa di troppo, o hai
incluso qualcosa di diverso.
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: contenuto form a video

Vi sembra corretto questo script che dovrebbe mostrare in una pagina
il risultato dell'invio di info tramite form? Perché purtroppo mi
mostra solo il <title> ed il titolo <h2>:
#!/usr/bin/perl
print "Content-type:text/html\n\n"; 
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); 
@coppie = split(/&/, $buffer); 
foreach $pair (@coppie) { 
    ($nome, $valore) = split(/=/, $coppia); 
    $valore =~ tr/+/ /; 
    $valore =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; 
    $HASH{$nome} = $valore; 
} 
print "<html><head><title>Form Output</title></head><body>";
print "<h2>Risultati del form</h2>\n"; 
foreach $key (keys(%HASH)) { 
    print "$key = $HASH{$key}<br>"; 
} 
print "</body></html>";

 wrote in message
e8a67e33.02022...@posting.google.com...

forse %HASH e' vuoto.
comunque e' piu' semplice usare CGI.pm per i parametri:
#----
use CGI qw/param/;
for (param()) {$HASH{$_} = param($_)}
#----
---
Mario Rizzuti
Newsgroup: it.comp.lang.perl
Titolo: Domanda classica Perl o C (II) ?

D'accordo, l'entusiasmo di dovere dimenticare almeno per
un po' l'orrida gestione delle stringhe di C (almeno su questo
concorderete!)
per la stupenda gestione delle stringhe in Parl mi ha fatto scrivere una
st*****ta.
Mi ritiro in lurking.
Ciao,
Matteo.

 Mi ritiro in lurking.
Ciao.

 Assembly.
Sai, e' che quando in un char pippo[MAXCHAR] inserisci dei valori,
e che un valore ogni 30.000 valori che gli copi e' lungo MAXCHAR+2,
e l'errore ti salta fuori dopo molti mesi che hai scritto quel codice
perche' stai sporcando la memoria ma, prima delle ultime modifiche era 
andato tutto bene, e per trovare l'errore ci metti 3 giorni in cui 
non ti spieghi dove' il pastrocchio che (ovviamente) si manifesta
in tutt'altra zona del codice, e' un trauma.
Ciao!

 ha scritto nel messaggio
news:2WTC6.36574$s93.1...@news.infostrada.it...


 in tutt'altra zona del codice, e' un trauma.
Ehm, in effetti non č una situazione felice.
Ciao.

 qualche piccola modifica?
Il C viene come versione definitiva del linguaggio, precedentemente chiamato
B e poi successivamente rinominato nel suddetto, con lo scopo di facilitare
la costruzione di sistemi operativi precedentemente realizzati in Asm.
D'accordissimo con te che tra Assembly e C c'è stato il B. La tua è una
giustissima osservazione.
Chiedo scusa se precedentemente sono stato poco chiaro.
Ciao.

Mi ritiro in lurking.
Ecco, bravo.

 ha scritto nel messaggio
news:9oWC6.38393$s93.1...@news.infostrada.it...


 
Probabilmente perchè prima di B c'era l' A...ssembler?
Cia'
----------------------------------------------------------------
 Wizzent - Programmatore
 
http://thexfails.cjb.net
 - 
http://robotstream.cjb.net
 "Odio le citazioni al fondo delle e-mail" (by Aristotele)

 hanno chiamato B e poi C?
Forse la A è quella presa dall'Assembly.
Personalmente se qualcuno chiamasse un linguaggio bassembly o cassembly
comincerei a dubitare delle sue facoltà mentali.
Cmq casi sono due: o quello precedentemente espresso, oppure effettivamente
c'è stato un linguaggio A che ha avuto una così bassa diffusione che nessuno
lo ricorda.
Ciao.

*B*ell Laboratories
o sbaglio?
Charlie



Thx!!!
(Poffarbacco che livore, cos'hai mangiato a pranzo ???)

 Probabilmente perchè prima di B c'era l' A...ssembler?
Ok, interessante, ma potreste togliere il fw-up da it.comp.lang.perl?
:-)
Ciao
M.
-- 
rm -rf 
and be happy

o sbaglio?
BCPL era il linguaggio precedente al C.
La B e' la prima lettera.
La C e' la seconda lettera.
Sono state scelte in ordine, in base al nome di quel linguaggio.
Per molto tempo alcune persone hanno pensato, difatti, che il
successore del C si sarebbe chiamato P.
Ma poi e' arrivato il C++ e ha risolto ogni dubbio.
Newsgroup: it.comp.lang.perl
Titolo: vhost template

Stavo usando il template toolkit per creare dei vhost su apache, ma non 
mi salva il file elaborato, lo stampa su stdout quindi dovrei fare una 
redirezione tipo >> httpd.conf
Esiste un tool simile al templates toolkit, ma che salvi su file ( anche 
se non è httpd.conf ) senza dover redirezionare lo stdout?
Grazie

_siro_ wrote:

Non serve nessun tool aggiuntivo, lo fa già Template Toolkit.
Basta passare il nome del file su cui vuoi venga redirezionato l'output 
come terzo parametro al metodo process():
$tt->process('my_httpd_conf.tt2', $vars, '/path/to/httpd.conf')
	or die $tt->error(), "\n";
alternativamente puoi usare un file handle già aperto, o uno scalar 
reference, o ancora un reference ad una subroutine o ad un oggetto (che 
implementi un metodo "print").
Per ogni ulteriore dettaglio consulta la documentazione di TT.
Ciao,
Emanuele.

Emanuele Zeppieri ha scritto:

Grazie è proprio quello che volevo sapere.
Della documentazione avevo visto solo le faq ed il tutorial, ora me la 
guardo meglio.
Ciao
Siro

 wrote:

[shameless plug]
Su Perl.it abbiamo pubblicato un articolo dedicato a Template
Toolkit. Magari trovi qualche spunto utile per il tuo task:
 
http://www.perl.it/documenti/articoli/2007/02/perl_template_t.html
ciao,
S.
-- 
Stefano Rodighiero      |  
http://larsen.perlmonk.org
mailto:
lar...@perl.it
   |  Italian Perl Mongers: 
http://www.perl.it

Newsgroup: it.comp.lang.perl
Titolo: Re: [MANIFESTO] it.comp.lang.perl

 Le FAQ sono disponibili presso 
http://www.perl-it.org/faq/
 .
Forse erano disponibili a quell'indirizzo...

 Forse erano disponibili a quell'indirizzo...
L'indirizzo corretto è:
http://www.perl.it/documenti/faq/iclp_list.html
Ma sinceramente non saprei come comunicarlo al nic.

 Ma sinceramente non saprei come comunicarlo al nic.
Grazie mille per il link corretto.
Su quel sito c'ero stato ieri, ma mi ero fermato alla homepage perchè ho
scaricato subito il "corso di Perl, guida introduttiva al linguaggio" (lo
sto leggendo ora) e non ho finito di consultare il sito :-)
Anche io non so come si richiede la modifica di un manifesto, ma credo
basti leggere le FAQ :-D
grazie ancora

 grazie ancora
Ho mandato un email al gcn con il nuovo manifesto (link giusto), ma non so
se è la procedura esatta :-D
Newsgroup: it.comp.lang.perl
Titolo: perl compiling ?

 ICQ# 33538863
Undergraduate Student of Computer Science at University of Bologna, Italy
SysAdm of 
verdicchio.students.cs.unibo.it
 (130.136.3.134)
	"Information wants to be Open"

 come posso fare ?
Mi sembra una strada impercorribile purtroppo..... Ti conviene chiedere a
chi ti da hosting di installare il Perl....
Ciao,
  Antonello

interprete che compilatore..... A tutt'oggi non si e' mai visto nulla!
Forse non ha mai visto il perl 5.6, che di serie ha perlcc.
Comunque e` ancora piuttosto fragile, in particolare se ci sono molti
moduli.
-- 
ciao, | * The Internet is full. Go away.  -- Joel Furr *
Marco | (Ri)scoprire fidonet: 
http://bbs.mi.linux.it

moduli.
L'ho provato sia nel perl 5.005 che nel perl 5.6, purtroppo non sempre funge
a dovere come dici tu.
Senza contare che produce degli eseguibili mai sotto i 500kb e che non
e' possibile fare il linking statico in automatico (forse si vergogna di
produrre eseguibili ancora piu' grossi ? :)))))


Newsgroup: it.comp.lang.perl
Titolo: cgi + dbi

Salve non capisco perchč questo semplice script non da 
risultati:
dove sbaglio??
Fabrizio
#!/usr/bin/perl -w
use DBI;
$db=DBI->connect:("Pg:dbname=negoziodb");
$sl=$db->prepare("SELECT pid FROM prodotto");
$sl->execute();
@row=$sl->fetchrow_array();
$sl->finish();
$db->disconnect();
print "Content-Type:    text/html\n\n";
print "<html>";
print "<body>";
print "@row";
print "</body></html>"



sono nuovo del modulo dbi..potresti commentarmi una ad una le righe che hai
scritto?
Grazie!

 $db=DBI->connect:("Pg:dbname=negoziodb");
Qui c'e` un duepunti (:) di troppo dopo "connect".
Michele.

Salve non capisco perchè questo semplice script non da 

Con "fetchrow_array" stai scaricano soltanto la prima righa della
query. E' questo il comportamento che desideri ?
Se invece vuoi mettere nell'array @row tutta la prima colonna della
query (che nell'esempio che hai fatto e' anche l'unica) devi
utilizzare:
 $tbl_ary_ref = $sl->fetchall_arrayref([0]);
@ary = @ $tbl_ary_ref;
Newsgroup: it.comp.lang.perl
Titolo: Espressioni regolari

Qualcuno mi sa spiegare a cosa serve il secondo numero in
{n, m}
se questo "m" non serve proprio a nulla?
Grazie a chi mi risponde
Carlo

 {n, m}


Ovvero? La tua domanda non e' delle piu' chiare.
Pero', come dice perlre, A{n,m} significa almeno n e non piu' di m
ripetizioni dell'elemento A
Quindi /.{5,10}/, ad esempio, matcha qualsiasi stringa di 5,6,7,8,9 e 10
caratteri.
Maurizio
-- 
Maurizio M. Munafo' / 
mmmu...@netscape.net
"Consider Phlebas, who was once handsome and tall as you" (T.S.Eliot)

 
Un esempio:
$a= "abcd 12345678 efgh";
if($a =~/\d{2,3}/)
{
	print "True";
}
else {
	print "False";		
}
In questo esempio, nonostante ci sia il limite, mi restituisce "True".
Se lasciassi solo il 2 otterrei lo stesso risultato.
Ciao


Quella regexp ha riscontro in quasiasi stringa che contenga una sequenza
di cifre di lunghezza compresa tra 2 e 3. E' evidente che in questa caso
togliere il limite superiore non cambia le cose. Se la stringa contiene
una sequenza di 1000 cifre, conterrà anche una sequenza di 2 cifre o di 3
cifre. 
Confronta invece l'esito dell'applicazione di queste tre regexp a quella
stessa stringa:
   /\s\d{2}\s/
   /\s\d{2,}\s/
   /\s\d{2,3}\s/
Max

Se siete cosě bravi. mi conviene frequentare maggiormente questo NG :-)
Grazie, Carlo

 Se siete cosě bravi. mi conviene frequentare maggiormente questo NG :-)
No, perche' altrimenti cominci a pensare che i problemi li possano risolvere
gli altri, che sono tanto bravi.
Ti conviene leggerti un buon manuale Perl, o qualche libro avanzato, come
'Perl Cookbook', che contiente tante soluzioni a tanti problemi.


Newsgroup: it.comp.lang.perl
Titolo: CGI with PERL

Ciao,
Ho da poco imparato qualche fondamento di perl e sto cercando un
interprete o compilatore Perl che possa funzionare sotto win95, in modo
da provare a fare qualche programma.
Inoltre vorrei sapere come si può realizzare uno script CGI (nel senso:
come si ricevono le variabili da un form, ..)
Grazie in anticipo

...

Newsgroup: it.comp.lang.perl
Titolo: AIUTO !! Convertire data anglosassone in italiana

 riconvertirla, solo se necessario, in quello italiano.
Come fa a riconoscere le date... se non lo sai a priori non sempre e' 
possibile discriminarle.
Ad esempio: 
04/03/02
e' il 4 marzo o il 3 aprile 2002? o forse il 2 marzo o il 3 febbraio 
2004?
E comunque che follia e' scrivere dei record con formati non omogenei 
e/o sconosciuti?
-- 
Saluti,
Giancarlo

 necessario, in quello italiano.
ma che fai, le domande a trabocchetto???? :-) leggendo la mail avevo
pensato che le date fossero tutte in anglosassone, non ho fatto caso
ai record.
allora puoi provare una cosa del genere (codice non testato e scritto in
2 minuti, non garantisco niente ;-):
    sub aggiusta {
        my($record) = @_;
        my $result = "";
        while($record =~ s|^(.*?)(\d\d)/(\d\d)/(\d\d)||) {
            my($tmp, $gg, $mm, $aa) = ($1, $2, $3, $4);
            ($gg, $mm) = ($mm, $gg) if $mm > 12;
            $result = "$tmp$gg/$mm/$aa";
        }
        $result .= $record;
        return $result;
    }
ovviamente non c'è speranza se le date sono sbagliate ma 'sintatticamente'
corrette (ad es. 03/02/01 può essere il 2 marzo o il 3 febbraio).


 ha scritto nel messaggio
news:acb2ak$36ik$1...@stargate1.inet.it...

Newsgroup: it.comp.lang.perl
Titolo: richiamare modulo all'interno si sub()

Salve,
     ho uno script con molte subs...ogni sub richiama un modulo...le 
subs nn vengono richiamate tutte ma a secondo dell'input dell'utente:
#!/perl -w
use strict;
us warnings;
sub stastistiche()
{
   use File::Stat;
   ...
}
sub session()
{
   use MD5::Digest;
   ...
}
in questo modo sapete se i tempi di esecuzione vengono diminuiti o no??
grazie


In questo modo... no. "use" viene sempre eseguita a tempo di
compilazione, senza riguardo a dove è inserita realmente. Quindi puoi
stare sicuro che:
if (0) {
   use Mio::Modulo;
   print "sono qui\n";
}
non stamperà niente ma caricherà Mio::Modulo.
Quello che ti serve in questo caso è require (v.
http://perldoc.perl.org/functions/require.html
). Essa viene eseguita a
tempo di esecuzione, per cui fa esattamente quello che vuoi. MA devi
stare attento ad una cosa: quando usi require l'usuale meccanismo di
importazione dei simboli è completamente ignorato. In poche parole,
quando scrivi:
   use Data::Dumper;
(v. 
http://search.cpan.org/~ilyam/Data-Dumper-2.121/Dumper.pm
) puoi
far conto sul fatto che venga importata la funzione Dumper, per cui
puoi scrivere:
   print Dumper([ 'ciao', 'a', 'tutti' ]);
Questo perché nel modulo Data::Dumper è stato impostato un export di
default per quella funzione. Se sostituisci use con require, invece,
la funzione *non* viene importata e ti tocca utilizzare la forma
estesa:
   print Data::Dumper::Dumper([ 'ciao', 'a', 'tutti' ]);
Per ovviare al problema, puoi sempre chiamare import() per conto tuo.
Ricapitolando, quindi, per fare il caricamento dei moduli a runtime
devi trasformare:
   use Mio::Modulo qw( funzione1 funzione2 altrafunzione );
in
   require Mio::Modulo;
   Mio::Modulo->import(qw( funzione1 funzione2 altrafunzione ));
Quanto poi alla tua seconda domanda -- ossia se ci si guadagna o meno
-- la risposta è... dipende. Ci sono moduli che richiedono un tempo
non indifferente per essere caricati, ed altri che magari potrebbero
impegnarti troppa memoria, per cui puoi trarne vantaggio. Negli altri
casi, invece, probabilmente stai solo rendendo il tuo codice più
complicato e meno manutenibile.
Ciao,
   Flavio.
PS: Perché non scrivere "non" invece di "nn"? Ci vuole poco e rende la
lettura molto, molto meno irritante...

 lettura molto, molto meno irritante...
matusa! :)
S.

Newsgroup: it.comp.lang.perl
Titolo: MailTools-1.15

ciao a tutti,
qualcuno ha mai usato il modulo MailTools-1.15
se si per favore datemi qualche drittta...dove posso trovare esempi o
qualche cosa da leggere a riguardo perche provo e riprovo ma non riesco a
spedire miente ne a capirne niente.
carlo

 wrote:

mah, a dire il vero basta che ti leggi li man di Mail::Tools e trovi
tutto, cmq se mi confermi il tuo indirizzo email ti mando una script che
ho fatto pochi giorni fa per fare un backup della cfg di una macchina e
farmi spedire via email l'archivio targizzato...
-- 
 __            ___                        
|  \. _ _  _    _/ _  _ _ _  _. _ |_|_ _  
|__/|(-(_)(_)  /__(_|(_(_(_|| |(_)|_|_(_) 
       _/
Newsgroup: it.comp.lang.perl
Titolo: Leggere un byte

ho capito come posizionarmi ad un certo punto di un file  (azzo:) e leggerlo
fino alla fine.. ma se volessi leggere solo un carattere magari per cercare
'\n'
come dovrei fare ?
Grazie

'\n' come dovrei fare?
getc. Comunque, non è molto efficiente, e di solito non conviene. perl
spezza già automaticamente l'input in righe terminate da "\n" o da qualunque
altro terminatore di tua scelta. E` di solito conveniente affidarsi a questo
meccanismo, piuttosto che scriversi una procedura con getc. E anche volendo
gestire l'input in maniera più dirette (perché si vuole cominciare a leggere
dal fondo o altro) è comunque conveniente leggere un blocco di una certa
lunghezza alla volta.
Ciao.

 Ciao.

}
Non č una buona idea mescolare sysread e seek. Le funzioni sys* possono
avere un comportamento diverso dalle corrispondenti non sys*, e confondere
il puntatore del file. O fai tutto con sys* o tutto senza.
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: Maledetto for!

Salve!
Ho un problemino che mi sta strizzando il fegato da un po' di tempo.
for($i = 0, $arg = $ARGV[$i]; $i <= $#ARGV; $i++, $arg = $ARGV[$i])
{
        SWITCH:{
                if($arg eq '-f')
                {
                        $i++;
                        $arg=$ARGV[$i];
                last SWITCH;
                }
                if($arg eq '-c')
                {
                #........
                }
 
                #....................
        }
}
Mi dà:
/bin/connect.rc: line 12: syntax error near unexpected token `for($'
/bin/connect.rc: line 12: `for($i = 0, $arg = $ARGV[$i]; $i <= $#ARGV; 
$i++, $arg = $ARGV[$i])'
Quel for mi sembra a posto; però, sulla documentazione man, non ho trovato 
loop for con due variabili: sarà questo?
Grazie
-- 
Per l'e-mail rimouvere gli underscore e la frase in maiuscole.

 for($i = 0, $arg = $ARGV[$i]; $i <= $#ARGV; $i++, $arg = $ARGV[$i])
prova con 
foreach $arg (@ARGV) { }
oppure se devi parserare gli argomenti a riga di comando prova il 
modulo Getopt
-- 
Saluti,
Giancarlo

loop for con due variabili: sarà questo?
No, dalla segnalazione sembrerebbe un'ambiguita` sintattica di 'for($'. Se
non che, io non sono riuscito a riprodurre l'errore.
Non e` per caso che il problema e` qualcosa prima del for? Altrimenti, e`
possibile avere un "perl -V"?
In ogni caso, condivido il suggerimento di usare 'foreach $arg (@ARGV) { }'
(o 'for my $arg (@ARGV) { }') e, per processare le opzioni, Getopt.
Ciao.

 $i++, $arg = $ARGV[$i])'
Questi messaggi d'errore non sono stati prodotti dall'interprete Perl.
Con tutta probabilità direi che sono stati emessi da bash.
Controlla la she-bang: se è #!/bin/sh abbiamo capito dov'è il problema.
Diversamente, verifica la modalità con cui lo script viene invocato.
Max

 Con tutta probabilità direi che sono stati emessi da bash.
Hai ragione: adesso ho lanciato /bin/perl col file come argomento e lui si 
lagna d'altro. E' comunque strano, perché ho i permessi d'esecuzione sullo 
script ed il file inizia con
#!/bin/perl
.
Grazie. Cercherò di risolvere il problema.


 #!/bin/perl
???
non era
#!/usr/bin/perl
?
--------------------------------
Inviato via 
http://usenet.libero.it

#!/usr/bin/perl
Di solito infatti e' cosi'; d'altronde se dice "ho lanciato /bin/perl"
vorra' dire che ha lanciato /bin/perl. E quello che conta e' ovviamente che
lo she bang indichi il percorso giusto, che, fino a dichiarazione
contraria, da lui e' quello li'.
Non se possa cambiare qualcosa se in /bin/perl avesse un link a
/usr/bin/perl, ma mi pare di capire che sarebbe lo stesso.
Ciao.
Newsgroup: it.comp.lang.perl
Titolo: backslash

Ciao
e' normale che il seguente script mi dia errore ?
---code---
$bla = "uu";
$bla = '\'.$bla;
print STDOUT $bla;
---code---
Can't find string terminator "'" anywhere before EOF at 
test.pl
 Raffaello

 print STDOUT $bla;
devi per forza usare '\\', altrimenti l'interprete capisce che tu vuoi un carattere ' all'interno della striga.
-- 
+--------+ ASCII ribbon campaign ( )
|  kral  |  - against HTML email  X
+--------+              & vCards / \

 tu vuoi un carattere ' all'interno della striga.
Incredibile, fino ad ora ho pensato che questo valesse
solo all'interno di "".
Grazie
 Raffaello
Newsgroup: it.comp.lang.perl
Titolo: database in access

come si fa a scrivere su una tabella di un database access formato mdb?
Grazie a chi mi potrŕ aiutare.
-- 
Posted from 
relay3.inwind.it
 [212.141.53.74] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie a chi mi potrà aiutare.


 Grazie a chi mi potrą aiutare.

Newsgroup: it.comp.lang.perl
Titolo: Velocizzare script in perl.

Salve a tutta lista. Vi spiego la mia situazione.
Ho scritto un policy-server da agganciare al postfix,
  per la gestione di alcune policy
di sicurezza personalizzate. QUesto script l'ho fatto in
perl, utilizzando i moduli berkeleydb e memcache, per
effettuare le query sul db berkeley del postfix, e per
usare il memcache come strumento di cache locale.
Attualmente questo script viene lanciato ad ogni email
che arriva sul server smtp. Questo ovviamente comporta
un generale degrado delle prestazioni, perche' ogni volta
che lo script viene eseguito, deve ricaricarsi tutti i
moduli da zero, e visto che arrivano in media circa 70-80
email al minuto, se non di piu, il carico della macchina
sale troppo.
Per risolvere il problema, ho riscritto tutto in C. Pero'
visto che farlo in perl mi sarebbe piaciuto di piu' anche
per una questione di competenze aziendali, e visto che
purtroppo non ho abbastanza conoscenze di perl per
sviluppare un demone, che risolverebbe il problema, avete
qualche idea su come sia possibile velocizzarne
l'esecuzione? Alcuni mi hanno suggerito il mod_perl, da
agganciare ad apache, ma oltre a dover modificare il
postfix per parlare direttamente con un server web,
vorrei evitare di aggiungere ulteriori anelli alla
catena di comunicazione.
Grazie in anticipo.

 l'esecuzione?
Brutalmente, puoi provare Persistent Perl:
http://search.cpan.org/~msergeant/PPerl/
che rende persistente il tuo script, (forse) senza necessità di 
apportarvi modifiche.
(Immagina un mod_perl senza Apache ;-)
Altrimenti una soluzione più sofisticata sarebbe quella di scrivere il 
tuo server in modo che rimanga in esecuzione in background, cosa in cui 
ti possono aiutare un sacco di moduli CPAN, tra cui Net::Server:
http://search.cpan.org/~rhandom/Net-Server/
ed anche un bell'articolo apparso su Perl.it:
http://www.perl.it/documenti/articoli/2006/12/demoni_e_segnal.html
Infine, puoi trarre ispirazione da amavisd-new e Spamassassin (il modulo 
spamd), che sono noti programmi che fanno proprio quello che chiedi tu.
Ciao,
Emanuele.

 spamd), che sono noti programmi che fanno proprio quello che chiedi tu.
Si ifnatti. Avevo iniziato a guardare sqlgrey, ma mi e' preso paura quando
ho aperto il file :D
Grazie per i consigli, specialmente il persistent perl, puo' tornarmi
utile in
tantissime occasioni.
-- 
Posted via a free Usenet account from 
http://www.teranews.com