NAME Finance::Bookkeeping::Account - debit/credit account balances correctly SYNOPSIS package MyCreditAccount; use Moose; with 'Finance::Bookkeeping::Account' => { nb => 'credit'}; # consuming class declars it's normal balance (nb) is credit or debit package MyDebitAccount; use Moose; with 'Finance::Bookkeeping::Account' => { nb => 'debit'}; # consuming class declars it's normal balance (nb) is credit or debit package MyCheckbook; use Moose; with ('Finance::Bookkeeping::Account' => { nb => 'debit', -alias => { debit => 'deposit', credit => 'withdraw' }, -excludes => ['debit', 'credit'], } ); package main; my $cr = CreditAccount->new; $cr->credit(50); $cr->debit(20); say $cr->balance; # 30 my $dr = DebitAccount->new; $dr->debit(10); $dr->credit(5); $dr->credit(50); say $dr->balance; # -45 my $bankaccount = MyCheckbook->new; $bankaccount->deposit(10); $bankaccount->withdraw(5); say $bankaccount->balance; # 5 DESCRIPTION Finance::Bookkeeping::Account is a parameterized role to create accounts that debit and credit correctly depending on account type. API debit nb = debit, this increases the balance. nb = credit, this decreases the balance. credit nb = credit, this increases the balance. nb = debit, this decreases the balance. AUTHOR Jesse Shy COPYRIGHT Copyright 2013- Jesse Shy LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. SEE ALSO