package Order::customer;
use base 'Order::DBI';
__PACKAGE__->set_up_table('customer');
__PACKAGE__->has_a(region => 'Order::region');
1;
package Order::region;
use base 'Order::DBI';
__PACKAGE__->set_up_table('region');
1;
####
my @customer = Order::customer->retrieve_all;
# region descending
for (sort {$a->region->name cmp $b->region->name } @customer) {
print $_->region->name, ' => ', $_->name, "\n";
}
# region ascending
for (sort {$b->region->name cmp $a->region->name } @customer) {
print $_->region->name, ' => ', $_->name, "\n";
}
####
__PACKAGE__->add_constructor(
region_asc => 'region like ? ORDER BY region ASC'
);
__PACKAGE__->add_constructor(
region_desc => 'region like ? ORDER BY region DESC'
);
####
for (Order::customer->region_desc('%')) {
print $_->region->name, ' => ', $_->name, "\n";
}
for (Order::customer->region_asc('%')) {
print $_->region->name, ' => ', $_->name, "\n";
}