in reply to parsing question
I'm no expert and I don't mean to discourage, but I don't think there is a robust way to achieve what you want to do unless your input data is in a key=value format or positional format (ie. bytes 1-8 are header, 9-16 are name, 17-24 are address, etc).
Otherwise you're kinda stuck with building code that makes it's best guess what a particular string actually is... and there'll always be things it misses no matter how "smart" the code is...
Update:
Perhaps rather than trying to find a Perl solution to this problem maybe it would be better to make a change to your chatroom system to implement one of of the above suggestions, or, make all the fields mandatory so that your Perl app will have an expected order of elements to process...