Hallo Franz-Josef,
[quote=tophoven,30.12.2005, 09:55] ($var, $wert) = split ( /\s=\s/, $line );
Leider ist diese Art der Bearbeitung unflexibel was die Anzahl der Leerstellen angeht.[/quote]
... nicht nur das! Was ist mit Kommentaren? Was ist mit Leerzeilen?
Selbst eine Konfigurationsdatei sollte strukturiert aufgebaut und
dokumentiert sein. Wenn du dann mit split arbeitest, wirst du vorher
bestimmt mittels "next if /regexp/" die Schleife beeinflussen. Das könnte
man auch zusammen fassen ...
datei.cfg
# Kommentar = Kommentar
# Kommentar
# Kommentar
name0=value0
name1 =value1
name2= value2
name3 = value3
name4=value4
name5 =value5
name6= value6
name7 = value7
name8=value8 # Kommentar
name9 = value9#Kommentar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
while (<FILE>) {
chomp;
next if /^(\s*#|\s*$)/;
s/\s*=\s*/=/;
s/^\s*//;
s/\s*#.*//;
my ($name,$value) = split /=/, $_;
$hash{$name} = $value;
}
while (<FILE>) {
chomp;
$hash{$1} = $2 if /^\s*(\w+)\s*=\s*(.+?)(\s*#|$)/;
}
-------------------------------
Edit:
Die 2. while-Schleife wird nicht korrekt angezeigt...
while (<FILE>) {
chomp;
$hash{$1} = $2 if /^\s*(\w+)\s*=\s*(.+?)(\s*#|$)/;
}
--------------------------------
Fisch dir einfach das aus der Konfigurationsdatei, was du brauchst.
Du kannst aber auch mit dem Config-Modul arbeiten.
Greez,
opi\n\n
<!--EDIT|opi|1136035590-->
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.