citromatik,
If I understand your problem correctly, you are sorting collections by the lowest value found in each collection. If this is the case, then you should modify your solution to use List::Util's min() since sorting the list to find an extreme is wasteful.