A snippet from the script:package Transaction; use Moose; use MyDB::Merchid; use Win32; has 'transaction_type' => ( is => 'rw', isa => 'Str', required => 1, ); has merch_info => ( is => 'ro', isa => 'Any', builder => '_build_merch_info', ); sub _build_merch_info { my $self = shift; my $snum = substr(Win32::NodeName, 5); return MyDB::Merchid->retrieve($snum); } 1; package MyDB; use strict; use warnings; use base 'Class::DBI'; MyDB->connection('dbi:ODBC:mydbsqldsn') || die "Couldn't connect to da +tabase: " . $DBI::errstr . "\n"; 1; package Transaction::CC; use Moose; extends(qw/Transaction/); has 'manual_phone' => ( is => 'ro', isa => 'Str', lazy_build => 1, ); sub _build_manual_phone { my $self = shift; if (! defined $self->{merch_info}) { die "ERROR: merch_info not defined\n"; } return $self->{merch_info}->MANUAL_NUMBER; } 1; package MyDB::Merchid; use strict; use warnings; use base 'MyDB'; MyDB::Merchid->table('MERCHID'); MyDB::Merchid->columns(All => qw/ COMPANY_NUMBER MERCHID_SIC_CODE MERCHID_QUAL_CODE MANUAL_NUMBER /); 1;
my $obj = Transaction::CC->new( 'transaction_type' => 'Visa', ); print "\$obj->{'manual_phone'}: " . $obj->{'manual_phone'} . "\n";
In reply to Moose, Class::DBI, and builder by perldiverx
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |