In Perl c'e` confusione tra i tipi di variabili. Ma la differenza tra una stringa ed un numero c'e`.
Il tuo $t puo` contenere il valore numerico (essere quindi un intero), oppure una stringa (contenere il/i carattere/i che rappresentano il numero intero).
Una stringa (anche se contiene un valore numerico) non puo` essere l'indice di una matrice.
Per cast in programmazione si intende trasformare esplicitamente la variabile in numerica.
In Perl si puo` fare applicando la funzione (nel caso specifico):
$t = int($t);