Hash-isch: Hash an File binden

Hi,

ich habe gerade eine _für mich_ neue Technik gefunden, die ich wunderbar finde! :-)
Ich benutze in einem Programm ein Hash, das ich benötige, um mir was zu merken. D.h. wenn ein Datum wiederkehrt, will ich das damit feststellen. Dadurch wird das Programm deutlich schneller, als wenn ich es erst später feststelle bzw. das nochmals durchlaufe.

Hashes haben aber dabei ein Problem:
Sie saugen den Speicher des größten Rechners leer, wenn man nicht aufpaßt.

Nun Plattenplatz habe ich ja genug. Jetzt habe ich ein Modul SDBM_File gefunden, womit man über tie ein Hash an ein File binden kann:
...
use strict;
use Fcntl;
no strict "refs";
use SDBM_File;
...
my %hash;
tie(%hash, 'SDBM_File', 'hash.txt', O_RDWR|O_CREAT, 0666);
...

Funktioniert bestens! Aber was ist, wenn ich mehrere Instanzen des Scriptes starte? Dann gibt es sicher Trubbel, oder? Konnte ich jetzt nicht feststellen, aber theoretisch dürfte das nicht ordentlich funktionieren, meine ich.
Sollte ich dem Filenamen einen Zufallswert (z.B. über time) beifügen?

Danke!

  1. Hallo,
    ich hätte einen anderen Tipp. Es ist zwar keine direkte Lösung zu deiner Frage, aber vielleicht hilft es dir weiter:
    Sieh dir doch mal das Modul CGI::Session an.
    Es tut eigentlich dasselbe, was du vor hast, wenn ich dein Problem richtig verstanden habe, wobei die Session (Hash) mit den Daten auf dem Server (oder in einer Datenbank) abgelegt ist, und du die Session bequem entweder per Cookie, oder in der URL Zeile mitschleppen, verändern, löschen,. etc.. kannst.

    Markus.

    --
    sh:( fo:| ch:? rl:( br:> n4:( ie:{ mo:) va:) de:] zu:) fl:( ss:| ls:] js:|
    1. Hallo,
      ich hätte einen anderen Tipp. Es ist zwar keine direkte Lösung zu deiner Frage, aber vielleicht hilft es dir weiter:
      Sieh dir doch mal das Modul CGI::Session an.
      Es tut eigentlich dasselbe, was du vor hast, wenn ich dein Problem richtig verstanden habe, wobei die Session (Hash) mit den Daten auf dem Server (oder in einer Datenbank) abgelegt ist, und du die Session bequem entweder per Cookie, oder in der URL Zeile mitschleppen, verändern, löschen,. etc.. kannst.

      Es geht nicht um Sessions!
      Ich brauche schon Hashes.

      Aber danke!!!