Thread Idee: Transformation einer Datei in ein Objekt
(17 answers)
Opened by rosti at 2011-03-30 11:06
Hallo,
mal unabhängig von vielen praktischen Perl-Modulen in denen es um das Einlesen/Parsen von Dateien geht; seit ein paar Tagen beflügelt mich die Idee, einen (vielleicht) neuen Weg zum Parsen einer Datei zu gehen. Die Idee ist, ausgehend von einer Datei, in der eine Struktur erkennbar ist, diese: Ersetze bestimmte Zeichen so, dass danach der Inhalt evaluiert werden kann. Beispiel zum Ausprobieren: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); my $cfg = ''; $cfg .= $_ while <DATA>; # Kommentare raus $cfg =~ s/#(.*)//g; # Parameter, nur alphanumerische Zeichen im key $cfg =~ s/(\w+)\s*>\s*(.*)/ $1 => qq($2),/g; # Section, alphanumerische Zeichen, '/' und '.' im key $cfg =~ s/([\w\/\.]+):/},{ "$1" => {/g; # Korrekturen $cfg =~ s/},//; $cfg =~ s/},{/},/g; # Terminieren $cfg = $cfg."}\n}"; #print $cfg; my $ref = eval $cfg; if($@){ die "Fehler in Config: $@"; } else{ print dump $ref; } __END__ # Config-Datei ############################################################ /index.html: # angesetzter Kommentar title> Startseite der Webrepräsentanz "Home" # angebauter Kommentar descr> Rund um die Schrotmühle und das Backen von Roggenbrot lastmod > 1 css> /newstyle.css # eingerückter Kommentar /impressum: title>Impressum und Kontakt descr>Anbieterkennzeichnung nach Telemediengesetz lastmod> 1 /foo/bar/koks: title > Alles was Bar ist descr > Hier gehts um die Kohle /test: title> Testseite descr> Testbeschreibung einer Testseite Was haltet Ihr davon? |