You know someone's confused when you're talking about perl, and they keep referring to a hash array as a 'cursor', and accessing (or building?) a hash array as 'opening a cursor'. Their confusion was confusing me until I realized what they were talking about.
A database was involved, but no cursors (not directly anyway). I wrote this code long ago before I could get the DBA to install the SDK libraries necessary for DBI/DBD to work, and I used system calls to a command line sql utility to do batch unloading to delimited files, then I read them into hash arrays, and the discussion (I realized) was about what info was in one of the hash arrays and how to get at it.
As far as the batch unload sql commands, it was not a bad way to go about it when the program was processing a lot of records, but fairly inefficient when only processing a few records, because the unloading part unloaded alot more records than necessary, but there was no easy way to filter what was being unloaded at that point. Now that there is DBI available, I'd like to rewrite everything, but it's not a priority, because like I've said before, the 'long term strategy' is to convert all of those programs to java. Ooowee is that gonna be fun (for someone :-)