| March 2002 | Perl Hardware Store | 26 |
Suppose you have a function that will take a long time to compute
Cache the results in a database
Run an overnight batch job to populate the database
In the morning, the function is fast
Perl's tie feature and the Memoize module make this easy:
use DB_File;
tie %h, 'DB_File', "cmyk.db", O_RDWR|O_CREAT, 0666 or die ...;
use Memoize;
memoize 'cmyk', SCALAR_CACHE => [ HASH => \%h ];
for my $r (0 .. 255) {
for my $g (0 .. 255) {
for my $b (0 .. 255) {
cmyk($r, $g, $b);
}
}
}
| Next | ![]() |
Copyright © 2002 M-J. Dominus |