$ cat 790142.pl use strict; use warnings; use Test::More qw(no_plan); use Data::Dumper; use DBI; my $dbh = DBI->connect('DBI:Mock:', '', ''); $dbh->{'mock_add_resultset'} = { sql => 'QUERY_ONE', results => [ [ 'foo', 'bar' ], [ 'this_one', 'this_two' ], [ 'this_three', 'this_four' ], ], }; $dbh->{'mock_add_resultset'} = { sql => 'QUERY_TWO', results => [ [ 'moo', 'baah' ], [ 'that_one', 'that_two' ], [ 'that_three', 'that_four' ], ], }; my $sth = $dbh->prepare('QUERY_ONE'); is_deeply( $sth->fetchrow_arrayref(), [ 'this_one', 'this_two' ] ); is_deeply( $sth->fetchrow_arrayref(), [ 'this_three', 'this_four' ] ); ok( !defined $sth->fetchrow_arrayref() ); # no more data $sth = $dbh->prepare('QUERY_TWO'); is_deeply( $sth->fetchrow_arrayref(), [ 'that_one', 'that_two' ] ); is_deeply( $sth->fetchrow_arrayref(), [ 'that_three', 'that_four' ] ); ok( !defined $sth->fetchrow_arrayref() ); # no more data $sth = $dbh->prepare('QUERY_THREE'); ok( !defined $sth->fetchrow_arrayref() ); # no matching query __END__ $ perl 790142.pl ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 1..7 $