while ( my $thread = $sth->fetchrow_hashref() ){ # I duplicate the data because DBI says that it may # choose to reuse the reference that it returns. push @msgs, { %$thread }; }