[Roma.pm] domanda

umbertobernardelli at live.it umbertobernardelli at live.it
Wed Sep 16 19:05:34 PDT 2009




From: Flavio Poletti 
Sent: Wednesday, September 16, 2009 2:02 AM
To: roma at pm.org 
Subject: Re: [Roma.pm] domanda


utilizzo Widows XP professional  e ho aggiunto il server IIS:
il mio scopo è salvare l'immagine su MySQL e dopo con GD::Image fare un confronto
con un'altra immagine.
Ciao
****************************************************************************


Continuo a non capire quali siano le difficoltà, visto che "DBI funziona, con Mysql funziona". 


Non vorrei che il problema fosse altrove, comunque. Su che sistema ti trovi? Se Windows, la lettura del file è errata perché devi impostare binmode (non fa male farlo nel caso generale, comunque). Consiglio anche di utilizzare filehandle con variabili lessicali e la versione a tre parametri di open(). Insomma:


my $data;
{ # restringo lo scope
   local $/; # per leggere il file tutto in una volta
   open my $fh, '<', $myfile
      or die "open('$myfile'): $!";
   binmode $fh;
   $data = <$fh>;
   close $fh;
}


che spesso puoi trovare "riassunto" come segue:


my $data = do { open my $fh, '<', $myfile or die "open(): $!"; binmode $fh; local $/; <$fh> };




In questi casi è molto comodo utilizzare File::Slurp:


use File::Slurp qw( read_file );
my $data = read_file($myfile); # voilà




In questo modo, sei sicuro che non vengano operate trasformazioni sui dati in ingresso quando leggi da file.


Da notare che impostando $/ ad undef (quando fai "local" per default il valore inserito è proprio undef) praticamente stai dicendo che il separatore dei "record d'ingresso" è non definito, per cui Perl tratta l'intero file come un 'record' e te lo legge tutto in una botta.


Altra cosa... ma come controlli che il contenuto del blob corrisponda a quello che ti aspetti?!?


Ciao,


    Flavio.

 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/roma/attachments/20090917/129a431b/attachment.html>


More information about the Roma mailing list