Thanks for your post which raises useful points. I have three questions. Why is the hash labels ordered 2,0,1 (I'm very easily confused) ? Also, why do we have sth->execute(@CHOICE);. And, why does the EXEC die if there is not the expected number of elements in the array. Is that because of the prepare statement?