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 = MyCreditAccount->new; $cr->credit(50); $cr->debit(20); say $cr->balance; # 30 my $dr = MyDebitAccount->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. Input can only be positive numbers or you will get an error message stating the input either does not look like a number or is not a positive number. 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