There is another way to handle binding array elements that I adapted from the example given in the DBI documentation:
my @row = (); $sth->bind_columns( \( @row[0..6] ) );
This uses Perl's autovivification to create the needed elements (seven in the example) and pass the references to bind_columns. The array slice provides the length, so you can start with an empty array. This is adapted from the example that binds to the values inside a hash and instead binds to the values inside an array.
Generally, with this many elements, you probably want named variables, but this example is from code that loads a table into an array for display in a Tk::TixGrid widget with minimal other processing.