Stap 1: Paarsgewijze verbindingen in Perl - methoden
Houd rekening met het volgende voorbeeld:
Telefoon boeken vindt u een alfabetisch geordende lijst van namen, zodat de lezer om te vinden welke telefoonnummer is toegewezen aan een persoon. Er is ook zoiets als een "reverse map", waarmee een te beginnen met het telefoonnummer en de naam van de persoon die nummer is gekoppeld. (Handig als u wilt te weten komen wie is het onderbreken van uw diner!).
Nu het probleem, laten we zeggen u werkt met een gegevensbron die is geen garantie voor 1-1-verenigingen. Een voorbeeld hiervan zou telefoon partijgrenzen lijnen. Een probleem ontstaat wanneer er meer dan één persoon is gekoppeld aan een nummer. In Perl, als u een associatieve array voor snel zoeken gebruikt, kan een omgekeerde versie informatie verliezen. De beelden hier illustreren hoe met behulp van de tegenboekfunctie op een hash kan leiden tot verlies van informatie. In een voorbeeld hebben we een associatieve array telefoonnummers worden gebruikt. Het lijkt erop dat we spoor van "Max verloren". We hebben bijvoorbeeld in de andere fictieve catalogus van internet aangesloten apparaten. In dit geval verloren we spoor van "consoles". Andere voor de hand liggende aanwijzingen voor meerdere apparaten met hetzelfde adres opzij, het verlies van informatie zal evalueren met een gewone associatieve array problematisch.
Op een grotere schaal, records bestaan meestal uit meerdere velden. Een t elefoonlijst, ook adressen. Het adresveld is nuttig voor sommige zoeken maar niet voor anderen. Het adresveld zou een voorbeeld van een waarde die niet is geïndexeerd. Dus, een kan de benodigde velden selecteren voor evaluatie en een unieke id-veld die betrekking heeft op het terug naar de grotere record. Deze geselecteerde veld kan helpen met ondersteuning voor besluitvorming, en het veld unieke id kunt u kiezen uit andere velden dan inschakelen. Bijvoorbeeld, kreeg de mobiele telefoon, maar wil proberen de vaste lijn.
Ik heb geïnvesteerd tijd en moeite werken in Perl met dit type van gegevens gemakkelijker en ik zou graag mijn oplossing. Een Perl "module" is perfect hiervoor. Perl voorziet "modules" die kunnen worden gebruikt om in te kapselen details voor een uitvoering voor hergebruik. In de wereld van Perl vind je een enorme bibliotheek van geboden door CPAN modules, en elke ontwikkelaar kan maken van hun eigen module met marginale inspanning en bieden het zelfs tot anderen. Ik willen bouwen van een herbruikbare module om twee redenen. Voorste zin mij om in te kapselen de details van de uitvoering. Ten tweede wil ik maken van de hergebruik van de overeenstemming van de uitvoering. Voor het gebruik van een module bevat een het gewoon in hun code met behulp van het sleutelwoord te gebruiken.
De dingen die ik wil om uit te voeren met deze module omvatten:
- Initialisatie & lid toegang / beweren
- Print & Debug
- Sleutel-waardepaar toevoegen
- Sleutel-waardepaar verwijderen
- Bestaat de sleutel
- Lijst van alle sleutels
- Sleutel-waardepaar omkeren