[Linuxtrent] Re: appello agli esperti perl

  • From: Michele Bert <micbert75@xxxxxxxxx>
  • To: "linuxtrent@xxxxxxxxxxxxx" <linuxtrent@xxxxxxxxxxxxx>
  • Date: Mon, 27 Oct 2014 16:48:13 +0100

Il 27 ottobre 2014 16:21, Daniele Pizzolli <ors@xxxxxxxx> ha scritto:
> Azz, chiamalo semplicissimo, 60 righe...
Vabbè le prime 30 sono per impostare un po' di variabili, ma non sono
così importanti per seguire la logica dello script.

>poi serve davvero tutto sto perl?
In realtà no, ma per il momento non sono riuscito a trovare di meglio
per impratichirmi con il perl ;-)

> Faccio un po' di fatica a leggere perl (anche se al volo alcune cose
> che vedo non mi tornano del tutto).

Nulla di più probabile. Sto leggendo la documentazione mano a mano che
scrivo, e può essere ch abbia interpretato male...
Comunque prova ad ignorare tutte le righe che contengono $vasterm.
Provo a descriverlo:

for my $mbr (@list) { #per ogni nome di file in @list

    my $infile;
    my $ofile;

# converti il file in ascii, e metti l'output in pipe
    my $convcmd="dd if=$mbr.MBR bs=1 conv=ascii 2>$log|";
    open($infile,$convcmd) or die "Cannot open file $mbr\n";
# $infile è l'handle che permette di leggere dalla pipe

# apri il file di output
    open($ofile ,">","$mbr.sql") or die "Cannot initialize output file
$mbr.sql\n";

    while(read($infile,$line,79)>0) { #leggi 79 caratteri
        print $ofile "$line\n"; # scrivi i 79 caratteri nel file di
output, segiuti da un new-line
    }
    close($ofile); #chiudi il file di output

    system("mv $mbr.sql $dest/$mbr.MBR 2>$log"); #sposta il file nella
directory $dest
#    system("cp $mbr.sql $dest/$mbr.MBR 2>$log"); #copia il file nella
directory $dest

    close($infile); # chiudi la pipe
}

Forse è un po' più chiaro? Nota: non mi interessa sapere qual'è la
soluzione migliore, ma capire cosa c'è di sbagliato in questa.

-- 
Michele
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: