NAME
Hash::Dirty - Keep track of whether a hash is dirty or not
VERSION
Version 0.01
SYNOPSIS
use Hash::Dirty;
my %hash;
tie %hash, qw/Hash::Dirty/, { a => 1 };
(tied %hash)->is_dirty; # Nope, not dirty yet.
$hash{a} = 1;
(tied %hash)->is_dirty; # Still not dirty yet.
$hash{b} = 2;
(tied %hash)->is_dirty; # Yes, now it's dirty
(tied %hash)->dirty_keys; # ( b )
$hash{a} = "hello";
(tied %hash)->dirty_keys; # ( a, b )
(tied %hash)->dirty_values; # ( "hello", 2 )
(tied %hash)->dirty } # { a => 1, b => 1 }
(tied %hash)->reset;
(tied %hash)->is_dirty; # Nope, not dirty anymore.
$hash{c} = 3;
(tied %hash)->is_dirty; # Yes, dirty again.
# %hash is { a => "hello", b => 2, c => 3 }
(tied %hash)->dirty_slice } # { c => 3 }
# Alternatively:
use Hash::Dirty;
my $hash = Hash::Dirty::hash;
$hash = Hash::Dirty->new;
$hash->{a} = 1 # Etc., etc.
DESCRIPTION
Hash::Dirty will keep track of the dirty keys in a hash, letting you which values changed.
Currently, Hash::Dirty will only inspect a hash shallowly, that is, it does not deeply compare the contents of supplied values (say a HASH reference, ARRAY reference, or some other opaque object).
This module was inspired by DBIx::Class::Row
FUNCTIONS
hash( <hash> )
Creates a new Hash::Dirty object and returns the tied hash reference, per Hash::Dirty->new.
If supplied, will use <hash> as the storage (initializing the object accordingly)
sub hash { return __PACKAGE__->new(@_); }
METHODS
Hash::Dirty->>new( <hash> )
Creates a new Hash::Dirty object and returns the tied hash reference.
If supplied, will use <hash> as the storage (initializing the object accordingly)
$hash->is_dirty
Returns 1 if the hash is dirty at all, 0 otherwise
$hash->is_dirty ( <key> )
Returns 1 if <key> is dirty, 0 otherwise
$hash->is_dirty ( $key, $key, ..., )
Returns 1 if any <key> is dirty, 0 otherwise
$hash->reset
Resets the hash to non-dirty status
This method affects the dirtiness only, it does not erase or alter the hash in anyway
$hash->dirty
Returns a hash indicating which keys are dirty
In scalar context, returns a hash reference
$hash->dirty_slice
Returns a hash slice containg only the dirty keys and values
In scalar context, returns a hash reference
$hash->dirty_keys
Returns a list of dirty keys
$hash->dirty_values
Returns a list of dirty values
AUTHOR
Robert Krimen, <rkrimen at cpan.org>
BUGS
Please report any bugs or feature requests to bug-hash-dirty at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Hash-Dirty. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Hash::Dirty
You can also look for information at:
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
RT: CPAN's request tracker
Search CPAN
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2007 Robert Krimen, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.