http://qs321.pair.com?node_id=394944


in reply to Parse data into large number of output files.

I never had to worry about using up too much memory these days because my E2900 has 32Gb of RAM, so I would always build an enormous hash in memory. 100Mb doesn't sound like too much data at all, I would build a hash in memory with the sender id as the key, then the messages in the array:

my %log = ( 'user1' => [ 'msg1', 'msg2', ... ], 'user2' => ... );

Nowadays even a half decent machines should have plenty of memory. I'd say just read into memory and write out one user at a time.