while (my $row = $sth->fetch()) { # Must copy since fetch reuses array. $row = [ @$row ]; $q->enqueue(share($row)); } #### my @queue; # Put stuff in while (...) { push @queue, ...; } # Take stuff out while (@queue) { my $item = shift(@queue); ... }