| Data-Remember documentation | Contained in the Data-Remember distribution. |
Data::Remember::Memory - a short-term memory brain plugin for Data::Remember
use Data::Remember 'Memory'; remember something => 'what?';
This is a very simple brain for Data::Remember that just stores everything in Perl data structures in memory.
Takes no arguments or special parameters. Any parameters will be ignored.
Stores the given FACT in a Perl data structure under QUE.
Recalls the fact stored at QUE.
Forgets the fact stored at QUE.
Andrew Sterling Hanenkamp <hanenkamp@cpan.org>
Copyright 2007 Boomer Consulting, Inc. All Rights Reserved.
This program is free software and may be modified and distributed under the same terms as Perl itself.
| Data-Remember documentation | Contained in the Data-Remember distribution. |
use strict; use warnings; package Data::Remember::Memory; our $VERSION = '0.000001';
sub new { my $class = shift; bless { brain => {} }, $class; }
sub remember { my $self = shift; my $que = shift; my $fact = shift; my $last_que = pop @$que; my $object = $self->{brain}; for my $que_entry (@$que) { if (defined $object->{$que_entry}) { $object = $object->{$que_entry}; } else { $object = $object->{$que_entry} = {}; } } $object->{$last_que} = $fact; }
sub recall { my $self = shift; my $que = shift; my $object = $self->{brain}; for my $que_entry (@$que) { if (defined $object->{$que_entry}) { $object = $object->{$que_entry}; } else { return; } } return scalar $object; }
sub forget { my $self = shift; my $que = shift; my $last_que = pop @$que; my $object = $self->{brain}; for my $que_entry (@$que) { if (defined $object->{$que_entry}) { $object = $object->{$que_entry}; } else { return; } } delete $object->{$last_que}; }
1;