On 2014-10-31 08:00, Michele Bert wrote:
Il 28 ottobre 2014 09:14, Michele Bert <micbert75@xxxxxxxxx> ha scritto:Grazie a tutti per gli ottimi suggerimenti, che oggi dovrei trovare il tempo di applicare.Rinnovo i ringraziamenti, e vi aggiorno, nel caso le informazioni tornassero utili a qualcuno.
Buongiorno,
Ho spezzato il ciclo in due: prima creo tutte le coppie di files, e successivamente ne sovrascrivo uno per ogni coppia con la conversione da EBCDIC ad ASCII (in realtà a latin1).
Mmm, ad occhio così ti giochi di sapere facilmente se un file è stato processato correttamente.
La cosa funziona perché la conversione impiega più tempo della creazione, ma volendo essere rigorosi avrei bisogno di una tecnica per capire quando il processo che effettua la creazione, a cui (vi ricordo) passo i comandi attraverso una pipe) ha finito di creare l'ultimo.
Rigurdando il primo codice, uno delle cose che mi sembra complicare le cose senza ragione è chiamare da perl n processi paralleli in shell (se ho capito bene). Gestire il parallelismo è complicato dentro un linguaggio, farlo chiamando comandi esterni (a meno che non siano autocontenuti) mi sembra la ricetta per futuri disastri.
Ad esempio cosa succede all'handle della pipe se il processo all'altro capo termina? C'è un modo per testarlo?
In perl od in generale? cat | dd & (sleep 1; killall dd) # più giusto sarebbe usare i pid
C'è un modo in perl per rimanere in attesa che una condizione si verifichi, oppure devo metterci un ciclo di polling?
Qui passo! Buona giornata, Daniele -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx