in Perl variables starting with @ are arrays, starting with $ are scalars (ints, strings, etc) and % is a hash (arrays with a key that is non-numeric)
When you access the element in the row array like this : $row[0] you get the first item back as a scalar. if you want the full array you access it with the @ at the start and no square brackets.
I believe {} makes a hash rather than an array and [] makes an empty array. If its not a hash it creates its an empty object.
Finally, the last line is commented out, but it prints all the elements in the array with , between them.
I don't fully understand as I'm a bit confused by $dbs but I hope that helps a bit.