in reply to writing an array of data to a file

open(OUTPUTFILE, '>$position_output_path')

Variables aren't expanded in single-quoted strings. You're opening a file called $position_output_path. You need double quotes.

while (<OUTPUTFILE>) { print OUTPUTFILE @rows;}

While you can read from OUTPUTFILE (which is opened for writing only - so you aren't going to get any data back anyway) write a record to the filehandle. That's not right. You probably just need:

print OUTPUTFILE @rows;
--
<http://dave.org.uk>

"The first rule of Perl club is you do not talk about Perl club."
-- Chip Salzenberg