Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cache::historical(3pm) [debian man page]

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)

Check Out this Related Man Page

Cache::CacheMetaData(3pm)				User Contributed Perl Documentation				 Cache::CacheMetaData(3pm)

NAME
Cache::CacheMetaData -- data about objects in the cache DESCRIPTION
The CacheMetaData object is used by size aware caches to keep track of the state of the cache and effeciently return information such as an objects size or an ordered list of indentifiers to be removed when a cache size is being limited. End users will not normally use CacheMetaData directly. SYNOPSIS
use Cache::CacheMetaData; my $cache_meta_data = new Cache::CacheMetaData( ); foreach my $key ( $cache->get_keys( ) ) { my $object = $cache->get_object( $key ) or next; $cache_meta_data->insert( $object ); } my $current_size = $cache_meta_data->get_cache_size( ); my @removal_list = $cache_meta_data->build_removal_list( ); METHODS
new( ) Construct a new Cache::CacheMetaData object insert( $object ) Inform the CacheMetaData about the object $object in the cache. remove( $key ) Inform the CacheMetaData that the object specified by $key is no longer in the cache. build_removal_list( ) Create a list of the keys in the cache, ordered as follows: 1) objects that expire now 2) objects expiring at a particular time, with ties broken by the time at which they were least recently accessed 3) objects that never expire, sub ordered by the time at which they were least recently accessed NOTE: This could be improved further by taking the size into account on accessed_at ties. However, this type of tie is unlikely in normal usage. build_object_size( $key ) Return the size of an object specified by $key. PROPERTIES
get_cache_size The total size of the objects in the cache SEE ALSO
Cache::Cache, Cache::CacheSizer, Cache::SizeAwareCache AUTHOR
Original author: DeWitt Clinton <dewitt@unto.net> Last author: $Author: dclinton $ Copyright (C) 2001-2003 DeWitt Clinton perl v5.12.4 2009-03-01 Cache::CacheMetaData(3pm)
Man Page