package Check::Model; use strict; use warnings; use base 'DBIx::Class::Schema'; __PACKAGE__->load_classes( qw/ Check Status / ); 1; #### package Check::Model::Check; use base 'DBIx::Class'; __PACKAGE__->load_components( 'Core' ); __PACKAGE__->table( 'checks' ); __PACKAGE__->add_columns( qw/ id status descr / ); __PACKAGE__->set_primary_key( qw/ id / ); __PACKAGE__->belongs_to( status => 'Check::Model::Status' ); 1; package Check::Model::Status; use base 'DBIx::Class'; __PACKAGE__->load_components( 'Core' ); __PACKAGE__->table( 'status' ); __PACKAGE__->add_columns( qw/ id descr / ); __PACKAGE__->set_primary_key( qw/ id / ); 1; #### #!/usr/bin/perl use strict; use warnings; use Check::Model; my $schema = Check::Model->connect( 'dbi:SQLite:dbname=checks', '', '' ); my $check = $schema->resultset('Check')->find( 1 ); my $status = $check->status->descr; print "status: $status\n"; # prints: 'status: Outstanding' $check->update( { status => 2 } ); $status = $check->status->descr; print "status: $status\n"; # also prints: 'status: Outstanding' $check = $schema->resultset( 'Check' )->find( 1 ); $status = $check->status->descr; print "status: $status\n"; # prints: 'status: Cleared'