[Cologne-pm] persistent memoize
A. Pagaltzis
pagaltzis at gmx.de
Sat Feb 18 02:46:53 PST 2006
Hi Patrick,
* Krusenotto, Patrick <pkrusenotto at cosa.de> [2006-02-17 09:20]:
>Mein Problem ist, das ich als gecachte Daten einen String der Form
>'Hash(xxxxx)' geliefert bekomme. Leider gestattet DB_File aber nicht die
>Verwendung eines LIST_CACHE.
das hat mit LIST_CACHE vs SCALAR_CACHE nix zu tun, sondern liegt
daran, dass du eine Referenz zurückgibst, was bei (fast) keinem
DBM-Modul »out of the box« funktioniert.
>Was kann ich da machen? Eine Datenbank kann ich bei der
>Anwendung aber nicht voraussetzen. Ich bin aber sicher, daß da
>irgendeine Option gigt, die vielleicht einer von Euch kennt.
Nimm MLDBM oder DBM::Deep, damit kannst du geschachtelte
Datenstrukturen im tied hash unterbringen. Im Falle von MLDBM
wäre das zB
use MLDBM qw( DB_File Storable );
tie my %cache => 'MLDBM', @sonst_alles_das_gleiche;
Bei DBM::Deep musst du die `tie`-Syntax leicht anpassen.
Gruss,
--
#Aristoteles
*AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1};
&Just->another->Perl->hacker;
More information about the Cologne-pm
mailing list