You're annoyed at this speed on 2.1million rows? Really? Are you sure?
as for serious advice, maybe you could store your data in a database, and access it through DBI? then you could run your transforms through an insert or update statement
Comment on (boo) Re: Assinging data to an array is slow..