in reply to two order sort

$scan->{$b} returns an array reference. You are comparing references which is not what you want. Change the first part of sort to
$#{ $scan->{$b} } <=> $#{ $scan->{$a} }
or
@{ $scan->{$b} } <=> @{ $scan->{$a} }
لսႽ† ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ