in reply to sort hash by value

I'm not quite sure what your doing with all that code, there seem to be quite a few mistakes. Which makes it hard for me to follow.

But as to your main point of the sort not working: You're sending in the values but treating them like keys and trying to do a lookup.
@reportnL = sort { $total_o{$a} <=> $total_o{$b} } values (%total_o{$hero});

Change it to
@reportnL = sort { $total_o{$a} <=> $total_o{$b} } keys %total_o ;

UPDATE: Just noticed his was my 500th post.

grep
One dead unjugged rabbit fish later...