Come dire che vorresti "montare" il nome delle variabili al volo. Non mi risulta che si possa.
Quelle cose si fanno solo in un lingauggio interpretato puro (tipo javascript), ma Perl e` in qualche modo precompilato (o preinterpretato, come preferisci).
Pero` esistono i vettori (array), gli hash, i vettori di hash, ed altre strutture che ti possono aiutare.
codice:
my @dati = ();
my %interno = (nome, '', cognome, '');
sub prova {
my $a = shift;
my $b = shift;
$interno{'nome'} = bla bla;
$interno{'cognome'} = bla1 bla1;
push(@dati, %interno);
}
Oppure, se vuoi metterlo in un punto definito del vettore, al posto del push usi:
$dati[$b] = %interno;
Poi per ricuperare i dati:
$qualcosa = $dati[$i]{'nome'};
$qualcosaltro = $dati[$i]{'cognome'};
Spero di non aver fatto errori.