Codering van verbindingen in Perl (4 / 6 stap)

Stap 4: Voorbeelden en Test cases


Laten we oefenen de module, met sommige testgevallen.

Gebruik van de module we moeten

  • de locatie van de module toevoegen aan de padlijst

    • Dit gebeurt na op de eerste regel met - I. /
    • . / wordt ervan uitgegaan dat de module is in dezelfde map als het script
  • Voeg de regel "gebruik paarsgewijze;"
    • Opmerking de naam van het pakket, de bestandsnaam van de module werden gekozen op basis van

De teststubs_pairwise.pl bevat een lopende versie van deze voorbeelden:

 #!/usr/bin/perl -I ./ <br>use strict; use Data::Dumper; use pairwise; ################## teststub1(); teststub2(); teststub3(); teststub4(); ################## #teststubs listed here 

Test-case 1: wie is met mij.

Donuts zijn een serieuze zaak als u wilt dat uw billijk aandeel.
Niets zegt dat wij donuts serieus als een oproep tot actie te automatiseren.
In het eerste voorbeeld zullen we bouwen een contact vereniging kaart & en maken van een oproep tot actie.

Code

 sub teststub1 {<br> print "teststub1\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('Chad' ,'locust team'); $kvp1->addkvp('Mike' ,'locust team'); $kvp1->addkvp('Dave' ,'locust team'); $kvp1->addkvp('Jon' ,'locust team'); $kvp1->addkvp('Chad' ,'volunteer'); $kvp1->addkvp('Jon' ,'volunteer'); $kvp1->addkvp('Steve' ,'Citizen Forester'); $kvp1->addkvp('Dave' ,'Music Fan'); # print Dumper $kvp1; print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); print $kvp1->map2str() . "\n"; my $locust_team = $kvp1->getvalue('locust team'); print "locust team Assemble! Attn:" . join (' ', . "\n"; return; } 

Uitvoer (die donuts niet een kans!)

 teststub1 Dave,1,Music Fan Dave,1,locust team Jon,1,locust team Jon,1,volunteer Mike,1,locust team Chad,1,locust team Chad,1,volunteer Steve,1,Citizen Forester Music Fan,1,Dave locust team,1,Dave locust team,1,Mike locust team,1,Jon locust team,1,Chad Citizen Forester,1,Steve volunteer,1,Jon volunteer,1,Chad locust team Assemble! Attn:Dave Mike Jon Chad 

Test-Case 2: 1 aardappel 2 aardappel...

Vinden we uit als er meer dan 1 aardappel is

Code

 sub teststub2 {<br> print "teststub2\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('potato1' ,'red'); $kvp1->addkvp('potato2' ,'blue'); $kvp1->addkvp('potato1' ,'blue'); $kvp1->addkvp('potato1' ,'red'); $kvp1->addkvp('potato2' ,'blue'); $kvp1->addkvp('potato3' ,'red'); $kvp1->addkvp('potato4' ,'red'); $kvp1->addkvp('potato4' ,'red'); #print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); #print $kvp1->map2str() . "\n"; #Mr Potato impersonators... my $redpotatos = $kvp1->getvalue('red'); if (scalar( gt '1') { print "More then 1 red potato here \n"; } else { print "Nothing is here ... move along \n"; } } 

Output (Aankondiging van de grootte van de matrix geeft een indicatie van de sterkte van de koppeling)

 teststub2 More than 1 red potato here 

Test-Case 3: De jacht voor de rode aardappel

Er is een concept van in de logica. Modus Tollens. MT neer "ontkennen het daaruit voortvloeiende."

Anders gezegd, als niet q hebt dan heb je niet p en p q impliceert
Wij zullen dit gebruiken als onderdeel van een proces van eliminatie om het vinden van de ware---uhhh---rode aardappel.

Code

 sub teststub3 { print "teststub3\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('potato1' ,'blue'); $kvp1->addkvp('potato2' ,'red'); $kvp1->addkvp('potato1' ,'red'); $kvp1->addkvp('potato1' ,'blue'); $kvp1->addkvp('potato2' ,'red'); $kvp1->addkvp('potato3' ,'blue'); $kvp1->addkvp('potato4' ,'blue'); $kvp1->addkvp('potato4' ,'blue'); print "starting with : \n"; print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); my $bluelist = $kvp1->getvalue('blue'); foreach my $tot ( $kvp1->removekey($tot); print "removing $tot from consideration\n"; } print "Modus Tolens NOT blue : \n"; print $kvp1->map2str() . "\n"; } 

Output (Merken ondanks meerdere associatieve koppelingen, de aardappels met blauwe verenigingen werden in 1 stap verwijderd)

 More then 1 red potato here <br>teststub3 starting with : potato4,2,blue potato2,2,red potato3,1,blue potato1,2,blue potato1,1,red removing potato4 from consideration removing potato3 from consideration removing potato1 from consideration Modus Tolens NOT blue : potato2,2,red 

Test-Case 4: Histogrammen & vinden van kruispunten

Dus als waarden een coördinaat voor een specifieke sleutel vertegenwoordigen, kan het mogelijk om te bepalen van kruispunten

Code:

 sub teststub4 {<br> print "teststub4 finding interesection of defined points\n"; my $kvp1 = pairwise->new(); $kvp1->addkvp('wire1' ,'2,1'); $kvp1->addkvp('wire1' ,'2,2'); $kvp1->addkvp('wire1' ,'2,3'); $kvp1->addkvp('wire1' ,'2,4'); $kvp1->addkvp('wire1' ,'2,4'); $kvp1->addkvp('wire2' ,'4,2'); $kvp1->addkvp('wire2' ,'3,2'); $kvp1->addkvp('wire2' ,'2,2'); $kvp1->addkvp('wire2' ,'1,2'); print "starting with :\n"; print $kvp1->map2str() . "\n"; $kvp1->invertkvp(); my $multi = $kvp1->nonuniqkeys(); print "nonuniqkeys returns a hash of keys with multiple associations / overlaps\n" . Dumper $multi; $multi = $kvp1->nonuniqkvp(); print "nonuniqkeys returns a hash of kvp defined multiple times \n" . Dumper $multi; } 

Output: (Merk op dat het veld komma's bevat en standaard het scheidingsteken een komma is. Dit illustreert hoe tokenizing kan worden gemaakt ingewikkelder. De seperator-functie kan worden gebruikt om te veranderen wat de map2str-methode sluit zich aan bij de velden op... Anderzijds kan een strategisch te profiteren van de situatie. In beide gevallen kan consequente herhaalbare uitvoering de ontwikkelaar om te begrijpen en te werken met het gedrag. )

 teststub4 finding intersection of defined points<br>starting with : wire1,1,2,3 wire1,1,2,2 wire1,2,2,4 wire1,1,2,1 wire2,1,3,2 wire2,1,1,2 wire2,1,4,2 wire2,1,2,2 nonuniqkeys returns a hash of keys with multiple associations / overlaps $VAR1 = { '2,2' => { 'wire1' => 1, 'wire2' => 1 } }; nonuniqkeys returns a hash of kvp difined multiple times $VAR1 = { '2,4' => { 'wire1' => 2 } }; 

Gerelateerde Artikelen

Codering van een kubus

Codering van een kubus

Terug te keren naar de vorige les: OverzichtLes overzicht:In deze les leert u hoe maak je de code voor een eenvoudige kubus-vorm.Bekijk het hele project van de "Tinkercoding een huis met Shape Generators" op TinkercadStap 1: Application Programm
Geautomatiseerde verlichting met behulp van DMX en Perl

Geautomatiseerde verlichting met behulp van DMX en Perl

waarom automatiseren uw verlichting?Nou, om eerlijk te zijn, de meeste van mijn huis is geautomatiseerd zo leek het duidelijk om te doen.Er zijn tal van voordelen in het automatiseren van onderdelen van uw huis, verlichting in het bijzonder gewoon ma
Codering van het huis

Codering van het huis

Terug te keren naar de vorige les: Maken van de muren van het huisLes overzicht:In deze les leert u hoe te combineren meerdere vormen om de vorm van een gebogen deur te maken.Bekijk het hele project op TinkercadStap 1: Maak een kleiner blok op hol ui
Batch-codering van tutorial ik

Batch-codering van tutorial ik

Batch-codering is een zeer fundamentele programmeertaal die zou moeten op elke windows-computer werken (niet apple al) vandaag ik zal u tonen de basisprincipes van de programmeertaal.Stap 1: Om te beginnen Open het start menu en Typ Kladblok open Kla
Codering van een externe IO Brainboxes apparaat te tellen

Codering van een externe IO Brainboxes apparaat te tellen

Deze gids zal worden met behulp van Visual Studio in visual C#. Het zal worden codering voor 2 ED lijningangen die "per item" en "dagelijkse prestatiemeteritem heten". U een naam kunt geven wat je wilt, deze regels zijn niet verbonden
Codering van webbrowser voor Windows 10 IOT op Raspberry PI 2

Codering van webbrowser voor Windows 10 IOT op Raspberry PI 2

Als per de de video-tutorial u zou nood voor downloaden van Visual Studio 2015 Gemeenschaphttps://dev.Windows.com/en-us/downloadsStap 1: Laat kijken naar de codeDe code voor dit voorbeeld is vrij eenvoudig:Een besturingselement ingesloten webviewText
Pixelart Tutorial met Charms van Hama of Perler kralen

Pixelart Tutorial met Charms van Hama of Perler kralen

Vele mogelijkheden met deze kleine jongens! Veel plezier!
De basisprincipes van HTML en CSS codering

De basisprincipes van HTML en CSS codering

Heb je ooit wilde maken van uw eigen website, maar die andere webbuilders zijn te duur? Zoek niet verder voor een intro naar HTML en CSS programmeren en coderen.Stap 1: Instellen Elke HTML en CSS codering van de pagina begint met deze blanco vel, gen
Combinatiehangslot met behulp van Intel Edison

Combinatiehangslot met behulp van Intel Edison

Hallo, ben ik zeker dat u kan een van deze combinatieslot weergegeven in de afbeelding hebt gebruikt. Ook wil u graag een elektronisch slot die net als deze werkt? Zo ja, dan dit is instructable voor jou. Dit kan worden gebruikt om te beveiligen uw e
Het gebruik van een LED-Array Module

Het gebruik van een LED-Array Module

met een enkele LED kun je de staat van iets: in- of uitschakelen. Dat zou een beetje saai. Met een array van LEDs kunt u tekens of zelfs sommige eenvoudige hoekig afbeeldingen weergeven. Dat zou een beetje pizzaz toevoegen aan een kleine microcontrol
Transformatie van oude printer aan geautomatiseerde stempelmachine

Transformatie van oude printer aan geautomatiseerde stempelmachine

Dit is de beste transformatie die ik ooit had gedaan, vond ik een oude printer die werkloos in mijn berging is en ik dacht bij het maken van sommige transformatie met het en jongens kijken het is voor je ik ben blij om dit met u delen kerels :-)Progr
Wekker met behulp van Atmega-328 en RTC

Wekker met behulp van Atmega-328 en RTC

Hi iedereen! Dit is mijn eerste instructable! Na het lezen van honderden instructables, besloten heb ik om mezelf.Klok is een van de meest essentiële dingen van huis houden. Er zijn verschillende soorten klokken zoals goede oude klokken van de slinge
DIY Laptop Cooling systeem van schroot

DIY Laptop Cooling systeem van schroot

Welkom iedereen. Dit instructable is op het maken van DIY Laptop koelsysteem van gemakkelijk beschikbare materialen en kladjes. Hoewel laptop koelsystemen niet zijn zeer duur of moeilijk te vinden. Maar een ander plezier in het maken van je eigen hee
Hoe te repareren van een lichtnetadapter

Hoe te repareren van een lichtnetadapter

dus zo veel als ik genieten van Asus, ben ik momenteel ongelooflijk geïrriteerd met de lichtnetadapter die kwam met mijn huidige eeepc. De voorplaat van de adapter is altijd een beetje dun, en gisteren toen ik haalde de adapter uit het stopcontact, d