Thanks much for clarifying the use of the brackets and the references. I found part of my problem was my understanding of the square brackets. I thought they were also returning a reference (which they are) but only as evaluated at the time of the creation. I was using
%errors before the hash was populated. I expected that the array reference would point to the populated list, but it did not. I guess it makes sense considering the brackets evaluate in list context and *then* return the reference.
It seems to be working now, and I appreciate all your time!
Thanks!