The answers are all there, but I'll spell them out for you:
- Use DBI with DBD::Oracle.
- The fastest way to read an array is with fetchall_arrayref.
- You may be able to do fast inserts/updates with bind_param_array, but it depends on whether or not DBD::Oracle has implemented special bulk insert code or not. Try it.
- Setting RowCacheSize may help with large selects.