5 mar 2011

Free e-books e audio-books

Project Gutemberg: raccolta di libri di pubblico dominio in formato elettronico.

LibriVox: raccolta di audio books di pubblico dominio, letti da volontari :-)

4 mar 2011

Scorrere un file in perl

Per scorrere un file in Perl con record a larghezza fissa, si può partire da questo codice:
#!/usr/bin/perl -w

open(my $fh, "<", $nomefile) or die $!;

while(read($fh, $buf, larghezza)) {
  # fai qualcosa con $buf, es. richiama la funzione unpack
}
se invece si vuole leggere un file di testo, con gli a capo al punto giusto, si può usare questo codice che legge tutto il file e lo carica in un array:
#!/usr/bin/perl -w

open(SRC, $nomefile) || die("Impossibile aprire il file di origine!");
@righe=;
close(SRC);
oppure si può leggere lo stesso file, ma una riga per volta:
#!/usr/bin/perl -w

open(SRC, $nomefile) || die("Impossibile aprire il file di origine!");
while () {
  # fai qualcosa con la riga corrente $_
}
sono banalità, ma siccome non programmo mai con un unico linguaggio di programmazione ma con quello che capita... non mi ricordo mai le sintassi, e allora le scrivo qui così le ritrovo subito! Naturalmente in Perl ci sono altri mille modi diversi per leggere un file!

Come leggere l'elenco di file in una directory in perl?

Utilizzando il perl, come si può ottenere l'elenco di file presenti nella directory corrente? È semplice, ma siccome non mi ricordo mai lo posto qui!
#!/usr/bin/perl -w

@files = <*.txt>;
foreach $file (@files) {
  print $file . "\n";
}
in questo caso vengono listati tutti i files con estensione .txt.