You're good! I mean, I understand it sort of. OK, you interpretted what I said exactly the righ way.
That "PCSPLMNCallDataRecords" is at the top of every record block and then it is immediately followed by a subheading such as:
mSTerminating, mSOriginating, transit, and like 3 others and everything below that are data lines that can be in different positions by 3 to 4 lines or more.
I know you understand the question and posted a good answer but I have to understand the answer. What ever happened to 2+2=4. Wow, see that's why I have a hard time with hashes and arrays.