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"; }