В Perl я делаю SQL-запрос, похожий на следующий:
SELECT `id`, `title`, `price` FROM `gamelist`
Что я хочу сделать, это взять результат этого запроса и вывести его в хеш-таблицу. Я использую DBI и в настоящее время знаю, как сделать следующее:
my %results;
my $count = 0;
while( @result = $statement->fetchrow() ){
%results{'id'}[$count] = $result[0];
%results{'title'}[$count] = $result[1];
%results{'price'}[$count] = $result[2];
$count++;
}
Однако я не люблю использовать $result[0]
и полагать, что первое поле будет идентификатором. Я бы предпочел что-то вроде:
my %results;
my $count = 0;
while( %result = $statement->fetchrow_as_hashtable() ){
%results{'id'}[$count] = %result{'id'};
%results{'title'}[$count] = %result{'title'};
%results{'price'}[$count] = %result{'price'};
$count++;
}
Я попытался посмотреть в Google, но не смог найти много хороших ответов, встроенных в DBI / Perl. Я нашел класс с открытым исходным кодом, который предлагал эту функциональность, но я чувствую, что это возможно без использования чужого класса.