Se ho un hash in Perl che contiene mapping interi completi e sequenziali (cioè, tutte le chiavi da 0 a n sono mappate su qualcosa, nessuna chiave al di fuori di questo), c'è un mezzo per convertirlo in una matrice?Perl, convertire l'hash in array
So che potrei scorrere le coppie chiave/valore e inserirle in un nuovo array, ma qualcosa mi dice che ci dovrebbe essere un mezzo integrato per farlo.
** ATTENZIONE PERICOLO! ** Perché tutti vogliono ordinare le chiavi? Non è necessario e rende l'algoritmo molto più lento! L'ordinamento è lento! La risposta di ** runrig ** è la migliore qui. Funzionerà se l'hash è scarso. Gli array mantengono l'ordine ma sono strutture di accesso casuale. Non stiamo lavorando con liste collegate, gente! – daotoad
Hai ragione: c'è un modo per farlo integrato. Vedi [Risposta di Ether] (http://stackoverflow.com/questions/2907270/perl-convert-hash-to-array/2907469#2907469). :) Questa domanda è un'altra ragione per cui esiste una differenza tra il contesto dell'elenco e gli array.Accoppiato con sezioni, ti permette di fare conversioni tra liste e hash senza particolari magie o iterazioni, e imho è una delle funzionalità più potenti di Perl. –