_roro: Config::IniFiles

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:

die ini Datei für die Grafiken

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 hash und Datei schreiben

$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

  1. 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

    --
    Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
    1. 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

      --
      Bis dann und wann einmal im Flo / Erfurt.
      1. 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

        --
        Ein Selbständiger ist jemand, der bereit ist, 16 Stunden am Tag zu arbeiten, nur um nicht 8 Stunden für einen Anderen arbeiten zu müssen.
        1. 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