最近手の空いている時間でperlでごにょごにょしています。DBIを使ってレコードをハッシュ配列に格納するのはどうだったけと調べてました。ストレートにいけば、selectall_hashref()が正解なのですが、あまりよい噂をききません。で、あっと驚く代替法があるようです。selectall_arrayref()を使って格納する時に、ハッシュ化することが可能なようです。
DBIでデータベースの内容をハッシュ配列で取得する
my $sql = 'SELECT id, name FROM test WHERE age < ?'; my $rows = $dbh->selectall_arrayref( $sql, { Columns => {} }, 20 );
第2引数の部分でハッシュ化されるようです。目から鱗でした。
#まぁ、Class::DBIを使うのが王道なのかも知れませんが。。。