in reply to Keys/Values being lost with this code--any help?

When you're stumped by problems like this, it's helpful to use Data::Dumper to look at what data you have in your internal variables. Here's what I would do:
my %hash_list = sort(split (/,/, $names)); use Data::Dumper; print Dumper(\%hash_list); # DEBUG
The reason for the "DEBUG" comment is that I like to label my debugging lines so that later, I can grep for them to make sure there's no extraneous testing code left in. That's also why both statements are on one line.

When you look at the result form this, it's pretty clear how your structure is broken. As a bonus, you get to see the extra space in your variables.