hotti: FileHandle in Objekt mitführen

Beitrag lesen

hi,

nach langer Zeit bin ich mal wieder am Überarbeiten meiner Module, mein Modul HashFile verwendet Serialize und Serialize::Hash (eigene Module). Letzteres erstellt ein Handle auf die Datei, das Handle wird im Namespace HashFile als globale Variable gehalten. Es besteht die Notwendigkeit, dass das FH über den gesamten Prozess leben muss.

Die Anwendung HashFile geht dann beispielsweise so:

tie my %hash, 'HashFile', '/tmp/hashfile', 'lock' or die $!;  

Ein tied(%hash) zeigt mir den Hash als Objekt, zur Klasse HashFile gehörig, soweit sogut. Was mir nicht gefällt, ist die globale Variable "FileHandle" (FH). Es bestünde nun die Möglichkeit, FH einfach in %hash einzufügen, damit werden jedoch einige Operationen verbaut, z.B. %hash = (); desweiteren ist der Key "FH" bei jeder anderen Operation immer zu berücksichtigen, das erscheint mir nicht sauber.

Welche Möglichkeiten gibt noch, auf die globale Variable "FH" zu verzichten?

Bitte mal um Hinweise,
Hotti