in reply to Reading back up through an array

As an alternative approach:

Break problem into per/consolidation station sized chunks..

Your program gets split into two parts. Open and read the file(s) followed by outputting the h-o-h to csv.

Assuming your records resemble your output, you will be able to read customer records until you find a consolidation station record at which point the customer records are assigned to the consolidation stations record.

psudo-code:

until m/consolidation/ { $cust_hash->{'city'} = "city"; $cust_hash->{'cust_num'} = "cust_num"; ....etc... } $outer-hash->{$consolidation_station} = $cust_hash; #end read loop #output to csv is clearly within your capabilities...
Hope that is helpful...

...the majority is always wrong, and always the last to know about it...

Insanity: Doing the same thing over and over again and expecting different results...

A solution is nothing more than a clearly stated problem...otherwise, the problem is not a problem, it is a facct