package Voting::DBI; use strict; use warnings; use base 'Class::DBI'; Voting::DBI->connection("dbi:mysql:voting", "voting", "votingpass"); package Voting::Candidates; use base 'Voting::DBI'; Voting::Candidates->table('candidates'); Voting::Candidates->columns(All => qw(id name email bio)); package Voting::Voters; use base 'Voting::DBI'; Voting::Voters->table('voters'); Voting::Voters->columns(All => qw(id name email class notes)); package Voting::VoteResults; use base 'Voting::DBI'; Voting::VoteResults->table('vote_results'); Voting::VoteResults->columns(Primary => qw(voter_id candidate_id)); package Voting::VoteRequest; use base 'Voting::DBI'; Voting::VoteRequest->table('vote_request'); Voting::VoteRequest->columns(Primary => qw(voter_id request_time request_ip)); package Voting::VoteTracking; use base 'Voting::DBI'; Voting::VoteTracking->table('vote_tracking'); Voting::VoteTracking->columns(Primary => qw(voter_id vote_time vote_ip)); 1;