use base qw( Rose::DB ); __PACKAGE__->use_private_registry; __PACKAGE__->register_db( driver => 'mysql', database => 'fake', host => 'fake', username => 'fake', password => 'fake' ); package My::RDBO::User; use base qw( Rose::DB::Object ); use DBI; __PACKAGE__->meta->setup( table => 'user', columns => [qw( id username password email name )], pk_columns => 'id', unique_key => 'username', ); sub init_db { my $dbh = DBI->connect( 'DBI:mysql:database=mydb', 'user', 'pass' ); my $rdb = My::RDB->new; $rdb->dbh($dbh); return $rdb; } package main; my $u = My::RDBO::User->new(id => 1); $u->load; print("$_ => ", $u->$_, "\n") foreach $u->meta->columns;