NAME ==== AccountableBagHash - be an accountable BagHash / MixHash SYNOPSIS ======== use AccountableBagHash; my %abh is AccountableBagHash = a => 42, b => 666; %abh = 5; # ok %abh = -1; # throws my %amh is AccountableMixHash = a => 3.14, b => 666; %abh = 6.28; # ok %abh = -1; # throws CATCH { when X::BagHash::Acountable { say "You do not have enough {.key}"; .resume } } DESCRIPTION =========== This module makes an `AccountableBagHash` / `AccountableMixHash` class available that can be used instead of the normal `BagHash` / `MixHash`. The only difference with a normal `BagHash` / `MixHash` is, is that if an attempt is made to set the value of a key to **less than 0**, that an exception is thrown rather than just deleting the key from the `BagHash` / `MixHash`. Also exports a `X::BagHash::Accountable` error class that will be thrown if an attempt is made to set the value to below 0. AUTHOR ====== Elizabeth Mattijsen Source can be located at: https://github.com/lizmat/AccountableBagHash . Comments and Pull Requests are welcome. COPYRIGHT AND LICENSE ===================== Copyright 2018, 2020 Elizabeth Mattijsen This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.