in reply to Multiple references pointing to the same memory location
from perldoc DBI:
Note that the same array reference is returned for each fetch, so don't store the reference and then use it after a later fetch.
I interpret this to mean there is no way around the full array copy. I mainly use Oracle... Tim Bunce seems to recommend using bind params for maximum efficiency on the dbi_users list.