It may do what you want, because perl is often smart enough to guess what you meant and not what you said, but you are using the wrong sigils ($, @, %).
$ means "one element" (scalar) and is the equivalent of the english "this", while @ means "several elements" (list, or array), and is the equivalent of the english "these". So when accessing one element from an array, you actually have to write $recordset[$i]. @recordset[$i] is actually a slice. perldata may be a good read. And you would have been warned about that if you had a use warnings; pragma at the top, and use strict; may seem bothersome, but there are very good reasons for the errors it yields, and it does help avoid mistakes.
And you can omit the -> between to sets of [], so $recordset[$i]->[1] is exactly the same thing as $recordset[$i][1];
| [reply] [d/l] [select] |
You should turn on warnings and meditate on
Scalar value @recordset[$i] better written as $recordset[$i]
| [reply] [d/l] |