ho risolto, l'array sono riuscito a svuotarlo associandogli la lista vuota

@array = ();
undef @array; ,

ora quello che mi tormenta è

se effetto una chiamata ad una subroutine

&chiamata(\@a, $indicearraya , $#a)

e gestico l'array passato alla subroutine così

my ($indice) = $_[1];
my ($n) = $_[2];
my ($array) = @{$_[0]}->[$indice];

nel caso in cui volessi richiamare un altra volta e per tante altre volte questa subroutine, come posso gestire i vari arrays passati di volta in volta?

ho notato che se effettuo una chiamata del genere sembra andare in loop sul primo elemento dell'array

&chiamata(\@b, $indicearrayb , $#b)

dovrei gestirli ogni volta in maniera tale da incrementare l'indice che mi tiene traccia dell'array? nel mio caso è sempre "0",perchè comunque io passao un solo array ad ogni chiamata,

spero dii essermi spiegato al meglio, praticamente voglio effettuare la stessa chiamata in maniera ricorsiva passando sempre un array ma che di volta in volta questo array ha degli elemnti diversi fino a che non si verifica una certa condizione.