rich transactional objects for Perl