[Cologne-pm] persistent memoize

Philip Zembrod Philip.Zembrod at web.de
Fri Feb 17 05:32:52 PST 2006


Hallo Patrick,

Krusenotto, Patrick wrote:
> Hallo,
>  ich habe ein Problem mit memoize. 
>
> Ich möchte eine Funktion "Memoizen", die Hashes oder Refs auf diese persistent Cacht.
>
> Ich habe Folgendes versucht: 
>
> use Memoize;
> use DB_File;
> use Data::Dumper;
>
> sub test {
>   print "TEST\n";
>   return {$_[0] => $_[1]};
> }
>
> tie my %cache => 'DB_File', 'MEMO.CACHE', O_RDWR|O_CREAT, 0666;
>   
Über diese Zeile stolpere ich. Ich benutze tie eigentlich nie und hab 
deshalb da keine Routine, aber der =>-Operator, der um seinen linken 
Operanden quasi Anführungszeichen wirken läßt, scheint mir an dieser 
Stelle sehr merkwürdig, wenn nicht sogar Ursache von Problemen.
> memoize 'test', SCALAR_CACHE => [HASH => \%cache];
>
> $x=test(111,666);
> print Dumper($x);
> $x=test(111,666);
> print $x;
>  
>
> 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. 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.
>   

Gruß
Philip



More information about the Cologne-pm mailing list