Sponsored Content
Special Forums News, Links, Events and Announcements Software Releases - RSS News File cache class 2008.02.03 (Default branch) Post 302164277 by Linux Bot on Monday 4th of February 2008 11:10:07 AM
Old 02-04-2008
File cache class 2008.02.03 (Default branch)

File cache class is a PHP Class that can cache arbitrary data in files in order to reduce the time necessary to regenerate pages or other types of data that do not change every time they are requested. It features safe locking of cache files to avoid data corruption caused by simultaneous accesses during cache file updates, portable locking schemes, and the ability to set a cache expiry date or timeout period. Cache files can store user-defined headers besides the cached data, and also standard headers used in HTTP like content-length:, date:, expires:, etag:, etc. It has been tested under Linux, SunOS and Windows. License: Freely Distributable Changes:
This release fixes a bug that was preventing the reading of cache file headers longer than the default file buffering length limit.Image

More...
 
Historical(3pm) 					User Contributed Perl Documentation					   Historical(3pm)

NAME
Cache::Historical - Cache historical values SYNOPSIS
use Cache::Historical; my $cache = Cache::Historical->new(); # Set a key's value on a specific date $cache->set( $dt, $key, $value ); # Get a key's value on a specific date my $value = $cache->get( $dt, $key ); # Same as 'get', but if we don't have a value at $dt, but we # do have values for dates < $dt, return the previous # historic value. $cache->get_interpolated( $dt, $key ); DESCRIPTION
Cache::Historical caches historical values by key and date. If you have something like historical stock quotes, for example 2008-01-02 msft 35.22 2008-01-03 msft 35.37 2008-01-04 msft 34.38 2008-01-07 msft 34.61 then you can store them in Cache::Historical like my $cache = Cache::Historical->new(); my $fmt = DateTime::Format::Strptime->new( pattern => "%Y-%m-%d"); $cache->set( $fmt->parse_datetime("2008-01-02"), "msft", 35.22 ); $cache->set( $fmt->parse_datetime("2008-01-03"), "msft", 35.37 ); $cache->set( $fmt->parse_datetime("2008-01-04"), "msft", 34.38 ); $cache->set( $fmt->parse_datetime("2008-01-07"), "msft", 34.61 ); and retrieve them later by date: my $dt = $fmt->parse_datetime("2008-01-03"); # Returns 35.37 my $value = $cache->get( $dt, "msft" ); Even if there's no value available for a given date, but there are historical values that predate the requested date, "get_interpolated()" will return the next best historical value: my $dt = $fmt->parse_datetime("2008-01-06"); # Returns undef, no value available for 2008-01-06 my $value = $cache->get( $dt, "msft" ); # Returns 34.48, the value for 2008-01-04, instead. $value = $cache->get_interpolated( $dt, "msft" ); Methods new() Creates the object. Takes the SQLite file to put the date into as an additional parameter: my $cache = Cache::Historical->new( sqlite_file => "/tmp/mydata.dat", ); The SQLite file defaults to $HOME/.cache-historical/cache-historical.dat so if you have multiple caches, you need to use different SQLite files. time_range() # List the time range for which we have values for $key my($from, $to) = $cache->time_range( $key ); keys() # List all keys my @keys = $cache->keys(); values() # List all the values we have for $key, sorted by date # ([$dt, $value], [$dt, $value], ...) my @results = $cache->values( $key ); clear() # Remove all values for a specific key $cache->clear( $key ); # Clear the entire cache $cache->clear(); last_update() # Return a DateTime object of the last update of a given key my $when = $cache->last_update( $key ); since_last_update() # Return a DateTime::Duration object since the time of the last # update of a given key. my $since = $cache->since_last_update( $key ); LEGALESE
Copyright 2007-2011 by Mike Schilli, all rights reserved. This program is free software, you can redistribute it and/or modify it under the same terms as Perl itself. AUTHOR
2007, Mike Schilli <cpan@perlmeister.com> perl v5.10.1 2011-04-27 Historical(3pm)
All times are GMT -4. The time now is 12:45 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy