> Hash e matrice non è la stessa cosa?

No, sono due strutture completamente diverse.
codice:
%hash            # tutta la hash
$hash{$elem}     # un elemento di una hash
$hash{'pippo'}   # idem

@array           # tutta la matrice (o vettore)
$array[$cont]    # un elemento della matrice 
$array[3]        # idem
Per una cosa del tuo tipo, si puo` usare un vettore di hash, cioe` per ogni record riempi una hash, che poi salvi in una matrice.

Ho avuto le mie belle difficolta` a capire questo, a suo tempo, ma poi e` una struttura estremamente flessibile.

Ti consiglio un buon corso di Perl (ad esempio quello id HTML.it).

Ciao
Michele