Datum: 2004-02-18
Quelle: debian-user-german
Eine CSV-Datei enthält Zeilen der Form directory;file;file-content. Daraus sollen die Verzeichnisse und Dateien angelegt sowie der Inhalt in diese Dateien geschrieben werden.
#!/usr/bin/perl
open (FH, "<$ARGV[0]") or die $!;
while (<FH>) {
chomp;
@line = split /;/;
mkdir $line[0];
open (OUT, ">" . $line[0] . "/" . $line[1]) or die $!;
print OUT $line[2], "\n";
close OUT;
}
close(FH);
Perl erlaubt eine sehr kompakte Programmierung; besonders dann, wenn es um das Parsen von Textdateien geht. Das ursprünglich vorgeschlagene Perl-Script realisierte das Anlegen der Verzeichnisse und das Schreiben des Inhalts über system()-Aufrufe. Das hat aber den Nachteil, dass je Eingabezeile 2 zusätzliche Prozesse gestartet werden. Ich habe deshalb diese Funktionen über Perl-interne Methoden realisiert.