Grazie a tutti per le risposte , ho risolto per il momento trattando l'array nella subroutine chiamata cos' @{$_[0]}->[$indice]...ma lo script continua...

altro problema...

esiste un metodo per poter passare l'array per riferimentoo ad una subrotine, copiarlo in un altro array all'interno della subroutine chiamata e svuotarlo restituendo alla subroutine chiamante un array nuovo in cui è stato copiato il vecchio ed il vecchio vuoto?

ho pensato di utilizzare la funzione shift, ma non riesco ad impostarla sintatticamente..

qualcuno sa aiutarmi?

ringrazio in anticipo per le risposte