Thread Data::Dumper: Will nich so, wie ich es will (5 answers)
Opened by Free Faq at 2004-07-12 17:31

root
 2005-07-13 23:41
#3133 #3133
User since
2003-08-15
120 Artikel
BenutzerIn
[default_avatar]
Ein sehr guter Beitrag, besonders der letzte :-)

Ich wollte ein Hash speichern und beim nächsten Aufruf wieder holen. Hilfreich im CGI.
Da ich hier gelandet bin, landen vielleicht noch mehr mit diesem Wunsch hier, darum meine Lösung mit Storable. Ein geiles Modul, funktioniert einfach, nur schade, dass der File kein ASCII ist.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use Storable qw(lock_store lock_nstore lock_retrieve);
# aso ...
# oben im CGI

# Daten wie die letzte Änderung werden in einem Hash gespeichert, dass über den Storable bei jeden Aufruf gelesen und später vor der Ausgabe wieder geschrieben wird.
my $dynfilename = "oe2edit_dynamischeinfos.dat";
my %dynInfo = ('default' => 'default stuff');

my $dynhashref = lock_retrieve($dynfilename);
%dynInfo = %$dynhashref;
# aso ...
# kurz vor der Ausgabe, also am Ende dann

# Dynamische Infos über den Storable in Datei speichern.
# Das Hash wird in einer Storable gespeichert und am Anfang des Programms wird diese Datei wieder ausgelesen.
lock_store \%dynInfo, $dynfilename; # wo ist der Unterschied
lock_nstore \%dynInfo, $dynfilename; # zwischen den zwei?


Nur noch eine kleine Sicherheitsfrage, wenn ich das so mache, mit dem lock, heißt es dann, zwischen dem einlesen und dem wegschreiben ist die Datei für andere gesperrt?!
Also wenn ein User B das CGI aufruft, während es für User A noch den Seitenaufbau generiert, dann muss User B warten bis das Hash für User A gespeichert wurde?\n\n

<!--EDIT|root|1121284340-->

View full thread Data::Dumper: Will nich so, wie ich es will