Quali sono alcuni buoni moduli Perl per la programmazione basata su flusso su file?

StackOverflow https://stackoverflow.com/questions/1212675

  •  06-07-2019
  •  | 
  •  

Domanda

Quali sono alcuni buoni moduli Perl per elaborare i file in base alle configurazioni?

Fondamentalmente sto lavorando per acquisire file di dati, dividerli in colonne, rimuovere alcune righe in base ad alcune colonne, rimuovere colonne non necessarie, confrontarle con la linea di base (scrive dove si sono verificate modifiche) e salvare un csv dei dati e dei commenti come metadati.

Il file di esempio è:

001SMSL22009032020090321024936
002XXXXX20090320102436               010000337 00051     
002XXXXX20090320103525               010000333 00090     
002XXXXX20090320103525               010000333 00090     
002XXXXX20090320103525               010000333 00090     
002XXXXX20090320103525               010000333 00090     
002XXXXX20090320103525               020000333 00090     
009000000009000000000271422122

confronterà riga per riga con un altro file (baseline) e verranno evidenziate alcune righe diverse (sto usando Tk :: DiffText ).

Ecco la pipeline in cui [è una pipe]

file - > [split] - > [rimuovi produzione] - > [ordina] - > [confronta] - > {l'utente salta e scrive commenti, modifica il file secondo necessità} - > [salva csv] - > [salva commenti]

La vera domanda è: quale modulo perl aiuta a modellare e far fluire una pipeline in questo modo? Dopo ulteriori ricerche ho trovato questo http://en.wikipedia.org/wiki/Flow-based_programming .

È stato utile?

Soluzione 4

Questo è quello che stavo cercando:

Text :: Pipe

Text :: Pipe :: impilabili

Grazie per avermi aiutato a chiarire le mie idee!

Altri suggerimenti

Hmmm, sembra che non sia nulla che Perl non possa gestire quasi da solo:

acquisizione di file di dati

while (<>) 

dividerli in colonne,

my @row = split(/,/);

rimuove alcune righe in base ad alcune colonne,

next if @row[5] =~ m/black_list_data/;

rimuovi colonne non necessarie

@row = ($row[1], $row[4]);

rimuovi colonne non necessarie

<*>

confrontali con quelli di base (scrive dove si sono verificati cambiamenti)

Ok, qui potresti usare Algorithm :: Diff

e salva un csv dei dati e dei commenti come metadati.

Class :: CSV o DBD :: CSV ?

Dai un'occhiata a Sprog . È un motore di programmazione visuale scritto in Perl (usando Gtk2). Puoi creare programmi Perl trascinando e rilasciando " ingranaggi " ;. Puoi anche aggiungere i tuoi ingranaggi (scritti in Perl, ovviamente).

 schermata di Sprog

Non sono a conoscenza di implementazioni Perl della programmazione basata sul flusso, ma credo che Perl 5.8 abbia reso disponibili thread di interpreti per i programmatori Perl (qualcuno mi corregga se sbaglio!), quindi dovrebbe essere relativamente semplice da costruire un'implementazione FBP su Perl. Vedi http://perldoc.perl.org/threads.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top