Ci sono un paio di cose che non capisco nel tuo script:

(@FAM[$i] eq $campo[2])
Confronti un vettore con un elemento di un altro vettore?
@FAM e` una matrice bidimensionale?


push (@hits, @campo);
Stai aggiungendo alla matrice @hits tutti i campi della matrice @campo? Non ti converrebbe tenere separato i vari campi?
Se poi vuoi ordinare secondo uno solo dei campi, come fai a separarli?


Nota che non sono molto bravo in Perl, per cui e` possibile che il tuo codice sia giusto (solo che io avevo un'idea diversa).

Ciao
Michele