Das :: Listeyedhash

TIE :: LISTEYEDHASH is een systeem dat het gebruik van anonieme arrays als sleutels tot een hash mogelijk maakt.
Download nu

Das :: Listeyedhash Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • Perl Artistic License
  • Prijs:
  • FREE
  • Naam uitgever:
  • Benjamin Franz
  • Uitgever website:
  • http://www.nihongo.org/snowhare/utilities/ftpweblog/

Das :: Listeyedhash Tags


Das :: Listeyedhash Beschrijving

TIE :: LISTEYEDHASH is een systeem dat het gebruik van anonieme arrays als sleutels tot een hash toestaan. TIE :: LISTKETEEDHASH is een systeem dat het gebruik van anonieme arrays als sleutels van een hash.synopsis kan toestaan tie% hash, 'tie :: listeyedhash'; mijn $ live_key = ; $ hash {$ live_key} = 'hallo!'; $ hash {} = 'vaarwel!'; Print $ hash {}, "N"; Verwijder $ hash {$ live_key}; Mijn @list = toetsen% {$ hash {}}; Print "@listn"; Untie% hash; alternatief sleutels zijn toegankelijk als: $ hash {'sleutel', 'items', 'live'} = 'hallo!'; (een blote lijst / array voor de sleutel in plaats van een anon lijst / array referentie te gebruiken) . Maar dat vertraagt de toegang met ongeveer 10% en kan niet worden gebruikt voor sleutels die conflicteren met de waarde van de $; Speciale variabele.Ook bruikbaar via de objectinterfacemethoden 'Put', 'Get', 'bestaat', 'Verwijderen', 'Clear'. De objectinterface is ongeveer 2x zo snel als de gebonden interface.tie :: listkeyedhash bindt een hash zodat u een verwijzing naar een array kunt gebruiken als de sleutel van de hash. Het gedraagt zich anders gewoon als een normale hash (inclusief alle voorbehouden over het proberen om een sleutel te gebruiken als zowel een hash-referentie als een scalaire waarde). Dit bevrijdt u van het 'hardwire' hash referenties in de code of hoeft te schrijven Bereik willekeurige punten in een hash Tree.Example: ######################## #! / usr / bin / Perl-gebruik strikt; gebruik waarschuwingen; Gebruik gegevens :: Dumper; Gebruik TIE :: LISTKETEREDHASH; mijn% voorbeeld; Stropdas (% voorbeeld, 'Tie :: listeyedhash'); % voorbeeld = ('A' => {'B0' => {'C' => 'waarde van C', 'd' => 'waarde van d', 'e' => {'f' => ' waarde van f ',},},' B1 '=> {' g '=>' waarde van g ',},},' H '=>' r ',); mijn $ b_key = ; mijn $ DKEY = ; mijn $ D = $ voorbeeld {$ d_key}; Print "D = $ DN"; mijn $ e_key = ; mijn $ e = $ voorbeeld {$ e_key}; Print 'E ='. Dumper ($ e); mijn $ f_key = ; mijn $ f = $ voorbeeld {$ f_key}; print "f = $ fn"; mijn $ H_KEY = ; mijn $ H = $ voorbeeld {$ h_key}; Print "H = $ HN"; ######################## De deugden van deze bijzondere manier om toegang te hash-of-hashes (HoH) in vergelijking met onopgemaakte bedrade derefererences of 'boom kruipen' worden Als volgt: 1) Naarmate het aantal niveaus in een HOH-toeneemt, benaderde het gebonden object asymptotisch de snelheid van hardwired Hash Dereferencing zonder het verlies van flexibiliteitstraf om de sleutels van tevoren te hoeven te hoeft te zijn wordt sneller de diepere een HOH wordt in vergelijking met de snelheid van softwarediveringstructuur. Dus u kunt bouwen en toegang krijgen tot willekeurig gestructureerde HOH en nog steeds toegang hebben tot diep begraven elementen in de boom.2) Het formaat is ontworpen om geheugen efficiënt te gebruiken. Het duurt slechts een paar honderd extra bytes over de grootte van een ongebonden HOH in het geheugen of wanneer geserialiseerd (via gegevens :: dumper of opslagbaar bijvoorbeeld), ongeacht hoe diep de hash is.3) Een verwijzing naar een bestaande HOH kan worden gepasseerd In Das :: ListeyedHash-> Nieuwe en alle OO-sleutellijsten Toegangsmethoden zullen "gewoon werken". Voorbeeld: gebruik stropdas :: listkeyedhash; mijn% hash = ('a' => {'b' => c '}); mijn $ obj = tie :: listkeyedhash-> nieuw (% hash); Mijn $ B_VALUE = $ OBJ-> Krijg (); Vereisten: · Perl


Das :: Listeyedhash Gerelateerde software