Agreeing with
frodo72 with an additional statement that using strict (i.e. adding "use strict;" at the top of your program) would have shown you that row_ary doesn't exist anywhere. Good to have (as well as "use warnings;")
Obviously, this is just a snippet. But I imagine you don't have it or it would have complained.
--------------
"But what of all those sweet words you spoke in private?"
"Oh that's just what we call pillow talk, baby, that's all."