in reply to I fear my code is unreadable
use List::Util qw(max); max(...) [download]
If you want to remove the map from that line, introduce a temporary variable that holds the output of map.