Config::IniFiles
_roro
- perl
Moin,
das Modul benutze ich meistens nur zum Lesen von iniFiles. Beim Schreiben gibts ein kleines Problem, siehe untenstehend.
Im PERL-Script binde ich die ini an einen hash:
my %ini;
tie %ini, 'Config::IniFiles', ( -file => "$dir/$imgini");
Das PERL-Script erzeugt nun eine Reihe von Grafiken und schreibt dazu die Breite und die Höhe in die ini-Datei:
[bild1]
width=600
height=155
[bild2]
width=600
height=235
Im Script mache ich das so:
$ini{$title}{'width'} = $width;
$ini{$title}{'height'} = $height;
tied(%ini)->WriteConfig("$dir/$imgini");
Das Problem ist, dass beim ersten Durchlauf des Scripts, nur der Parameter width in der ini-Datei ankommt. Ist aber auch nicht immer so, manchmal ist auf Anhieb (beim ersten Durchlauf) alles drin in der ini.
Kennt jemand den Effekt? Und was dagegen tun?
--roro
das Modul benutze ich meistens nur zum Lesen von iniFiles. Beim Schreiben gibts ein kleines Problem, siehe untenstehend.
Tritt das nur bei der tie-Variante auf oder auch bei der objektorientierten? Könnte es sein, dass es für den fehlenden Wert mal nix zu schreiben gibt, der Fehler also nicht im von dir genannten Modul liegt, sondern in dem Code, der den ini-Hash füllt (Stichwort debugging)?
Nur so ein paar Ideen.
Siechfred
Hi Torsten,
das Modul benutze ich meistens nur zum Lesen von iniFiles. Beim Schreiben gibts ein kleines Problem, siehe untenstehend.
Tritt das nur bei der tie-Variante auf oder auch bei der objektorientierten?
Nur in erster Anwendung, also mit hash und so.
Könnte es sein, dass es für den fehlenden Wert mal nix zu schreiben gibt, der Fehler also nicht im von dir genannten Modul liegt, sondern in dem Code, der den ini-Hash füllt (Stichwort debugging)?
Das Problem kenne ich eigentlich schon länger und ich weiß dass es nicht an meinem Code liegt.
Wie auch immer, für mich gibts Workaround's, entweder ich nutze das Modul und gebe mich damit ab, mein Script mehr als einmal zu starten; oder ich verzichte auf das Modul und schreibe meine ini-Datei mit den üblichen Methoden einfach neu (was auch geht).
Danke Deiner Nachfrage!
--roro
Das Problem kenne ich eigentlich schon länger und ich weiß dass es nicht an meinem Code liegt.
Hm, das Modul stellt dir ja auch diverse Fehlermeldungen zur Verfügung, evtl. ist da was zu finden. Und drunter gibt's auch noch was zum Thema Bugs in der WriteConfig-Methode, vielleicht ist das so einer?
Siechfred
Moin Torsten,
Das Problem kenne ich eigentlich schon länger und ich weiß dass es nicht an meinem Code liegt.
Hm, das Modul stellt dir ja auch diverse Fehlermeldungen zur Verfügung, evtl. ist da was zu finden. Und drunter gibt's auch noch was zum Thema Bugs in der WriteConfig-Methode, vielleicht ist das so einer?
Für meinen speziellen Fall habe ich jetzt entschieden, dass die ini-Datei ohne das Modul (Config::IniFiles, was ich trotzdem sehr schätze) mit print Befehlen einfach neu erstellt wird.
Von einem Script, was u.U. einige hundert PNGs erzeugt und dazu eine ini-Datei schreiben soll, die später für einen dynamischen Seitenaufbau dienen soll, muss ich mich 100%ig darauf verlassen können, dass diese ini stimmt.
Sorry4Trouble, Rolf