foreach my $watch_string ( $schema->resultset('WatchString')->all ) # Could be... my $ws = $schema->resultset('WatchString') ->search({}, { cache => 1 }); while( my $line ) { foreach my $watch_string ( $ws->all ) #### my $ws = $schema->resultset('WatchString'); $ws->result_class('DBIx::Class::ResultClass::HashRefInflator'); my @ws = $ws->all; $_->{match_string} = qr/$_->{match_string}/ for @ws; while( my $line ) { foreach my $ws ( @ws ) { if( $line =~ $ws->{match_re} ) # all hashrefs now, no objects. {