📄 cachememory.pm
字号:
package DBI::Util::CacheMemory;# $Id: CacheMemory.pm 10086 2007-10-16 12:36:56Z timbo $## Copyright (c) 2007, Tim Bunce, Ireland## You may distribute under the terms of either the GNU General Public# License or the Artistic License, as specified in the Perl README file.use strict;use warnings;=head1 NAMEDBI::Util::CacheMemory - a very fast but very minimal subset of Cache::Memory=head1 DESCRIPTIONLike Cache::Memory (part of the Cache distribution) but doesn't support any fancy features.This module aims to be a very fast compatible strict sub-set for simple cases,such as basic client-side caching for DBD::Gofer.Like Cache::Memory, and other caches in the Cache and Cache::Cachedistributions, the data will remain in the cache until cleared, it expires,or the process dies. The cache object simply going out of scope will I<not>destroy the data.=head1 METHODS WITH CHANGES=head2 newAll options except C<namespace> are ignored.=head2 setDoesn't support expiry.=head2 purgeSame as clear() - deletes everything in the namespace.=head1 METHODS WITHOUT CHANGES=over=item clear=item count=item exists=item remove=back=head1 UNSUPPORTED METHODSIf it's not listed above, it's not supported.=cutour $VERSION = sprintf("0.%06d", q$Revision: 10086 $ =~ /(\d+)/o);my %cache;sub new { my ($class, %options ) = @_; $options{namespace} ||= 'Default'; my $self = bless { #_cache => \%cache, # can be handy for debugging/dumping %options, } => $class; $self->clear; # init return $self;}sub set { my ($self, $key, $value) = @_; $cache{ $self->{namespace} }->{$key} = $value;}sub get { my ($self, $key) = @_; return $cache{ $self->{namespace} }->{$key};}sub exists { my ($self, $key) = @_; return exists $cache{ $self->{namespace} }->{$key};}sub remove { my ($self, $key) = @_; return delete $cache{ $self->{namespace} }->{$key};}sub purge { return shift->clear;}sub clear { $cache{ shift->{namespace} } = {};}sub count { return scalar keys %{ $cache{ shift->{namespace} } };}sub size { my $c = $cache{ shift->{namespace} }; my $size = 0; while ( my ($k,$v) = each %$c ) { $size += length($k) + length($v); } return $size;}1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -