In generale la mappatura indice -> valore non è invertibile, ad esempio con array così:<div><br></div><div>@array = (1, 1, 1, 1, 1);</div><div><br></div><div>dove si trova "1"?</div><div><br></div><div>Se vuoi l'indice del primo elemento uguale a quello che cerchi, puoi usare first_index (alias firstids) da <a href="http://search.cpan.org/perldoc?List::MoreUtils">List::MoreUtils</a>:</div>
<div><br></div><div>$indice = first_idx { $_ == $elemento } LISTA;</div><div><br></div><div>Al posto di "==" puoi ovviamente mettere "eq" ed in generale puoi mettere un qualsiasi blocco di test (ad esempio per cercare il primo elemento pari, positivo, ecc.)</div>
<div><br></div><div>Se sei sicuro che la mappatura sia invertibile - ossia la lista/array contiene solamente valori unici - e devi trovare parecchie inversioni potresti utilizzare una hash, ad esempio:</div><div><br></div>
<div> my @array = (...);</div><div><br></div><div> my %indice_di;</div><div> @indice_di{@array} = 0 .. $#array;</div><div><br></div><div> # oppure, più concisamente</div><div> my %indice_di = map { $array[$_] => $_ } 0 .. $#array;</div>
<div><br></div><div> $indice = $indice_di{$elemento};</div><div><br></div><div>Da notare che se hai elementi ripetuti questa tecnica ti darà l'ultimo indice disponibile, non il primo come first_index().</div><div><br>
</div><div>Ciao,</div><div><br></div><div> Flavio. </div><div><br><br><div class="gmail_quote">2009/9/11 <span dir="ltr"><<a href="mailto:kanak@perl.it">kanak@perl.it</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
qual'e' la variabile che indica la posizione di un elemento dentro un<br>
array?<br>
<br>
in pratica l'opposto di:<br>
" $lista[x] " che corrisponde ad " elemento "<br>
<br>
io vorrei una funzione tipo:<br>
"posizione(elemento, @lista) che corrisponde ad " x "<br>
<br>
grazie<br>
<br>
_______________________________________________<br>
Roma mailing list<br>
<a href="mailto:Roma@pm.org">Roma@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/roma" target="_blank">http://mail.pm.org/mailman/listinfo/roma</a><br>
</blockquote></div><br></div>