Această secțiune listează câteva funcții care sunt concepute pentru a gestiona hashes-urile.
taste funcționale
Funcția chei (% nume) oferă o listă cu toate tastele curente care se află în hash% name_heesh. Cu alte cuvinte, utilizarea acestei funcții este echivalentă cu revenirea lista tuturor elementelor numerotate cu numere impare (prima, a treia, a cincea, etc.) prin implementarea hash context% imya_hesha într-o listă, și le revine să funcționeze cheile în această ordine. Dacă nu există elemente în hash, funcția tastelor returnează o listă goală.
Să aplicăm această funcție la hash din exemplele anterioare:
Ca toate celelalte funcții încorporate, parantezele nu sunt necesare: funcțiile% fred sunt identice cu tastele (% fred).
Acest exemplu arată, de asemenea, că elementele hash individuale pot fi interpolate în șiruri în ghilimele duble. Totuși, hash nu poate fi interpolat în acest fel *.
* Este posibil, în principiu, cu ajutorul unei tăieturi, dar aici nu vorbim despre felii.
În contextul scalar, funcția tastelor furnizează numărul de elemente (perechi cheie-valoare) conținute în hash. De exemplu, puteți afla dacă hash-ul este gol, după cum urmează:
Pentru a afla hash este gol sau nu, trebuie doar să utilizați hash% într-un context scalar:
Valorile funcției
Funcția valori (% array_name) returnează o listă cu toate valorile curente ale matricei specificate în aceeași ordine ca și tastele (% array_name) care returnează cheile. Ca întotdeauna, parantezele sunt opționale. De exemplu:
Gama @lastnames va conține fie valori ("flintstone", "rubble"), fie ("moloz", "flintstone").
Funcția fiecare
Pentru looping pe întreaga hash (de exemplu, pentru a testa fiecare element), puteți utiliza tastele funcționale, și obține valori prin întoarcere taste. Într-adevăr, această metodă este utilizată pe scară largă, dar există un mod mai eficient - să funcționeze fiecare (% imya_hesha), care returnează o pereche cheie-valoare ca o listă cu două elemente. Fiecare calcul al acestei funcții returnează următoarea pereche cheie-valoare pentru un hash, până când toate elementele sunt verificate. Dacă perechea nu mai este prezentă, fiecare returnează o listă goală.
De exemplu, pentru a trece prin hash-ul ultimului nume din exemplul anterior, trebuie să utilizați ceva similar:
Atribuirea unei noi valori pentru hash-ul întreg face ca fiecare funcție să meargă la început. Adăugarea elementelor la hash și eliminarea elementelor din ea în timpul executării bucla ar putea "confunda" funcția fiecăruia (și probabil și dvs.).
Ștergeți funcția
Dacă nu ați găsit ceea ce căutați, vă recomandăm să utilizați căutarea pe site: