in reply to DBI AoArefs dereference

fetchrow_arrayref always returns a reference to the same array as an optimisation. This is documented. If you wish to save the data, you need to copy it.
push @qrydata, [ @$row ];

By the way,

last if $xx++ >10;
should be
if (@qrydata > 10) { $sth->finish(); last; }

The counter variable is useless, and calling finish avoids a warning.

Even better would be to use a LIMIT clause to not fetch the rows you don't want in the first place. Then you'd also be able to use selectall_*.