sub get_list { my ($class, %args) = @_; my ($id_name,$table) = @args{qw(_id _table)}; my $sql = "SELECT $id_name FROM $table"; # the database object is deliberately unavailable to the # programmers my @objects; my $ids = $DBO->_arrayref( $sql ); foreach my $id ( @$ids ) { push @objects => $class->new(%args,open_id => $id); } return \@objects; }