Coding anslutningar i Perl (3 / 5 steg)

Steg 3: Bygga modulen



Så låt oss se vad vi lärt oss i den enkla modellen och kombinera den med listan metoder att skapa en återanvändbar modul. Pairwise.pm filen bifogas innehåller den körbara koden.

En modul struktur är följande:

  • lägga till platsen för modulen i listan sökväg
    • Detta görs efter på den första raden med - jag. /
    • . / antar modulen finns i samma katalog som skriptet
  • Lägg till rad "använda parvisa;"
    • Obs paketnamnet, filnamn av modulen valdes för att matcha

Teststubs_pairwise.pl innehåller en rinnande version av dessa exempel:

#! / usr/bin/perl - jag. / < br > Använd strikt;
Använd Data::Dumper;
använda pairwise;
##################
teststub1();
teststub2();
teststub3();
teststub4();
##################

#teststubs anges här

Testfall 1: Vem är med mig.

Munkar är allvarlig affär om du vill att din beskärda del.
Ingenting säger vi ta munkar på allvar som automatisera en uppmaning till handling.
I det första exemplet kommer vi att bygga kartan kontakta föreningen & och skapa en uppmaning till handling.

Koden

sub-teststub1 {< br > print "teststub1\n";
min $kvp1 = pairwise -> new();
$kvp1 -> addkvp ("Tchad", "locust team");
$kvp1 -> addkvp ("Mike", "locust team");
$kvp1 -> addkvp ("Dave", "locust team");
$kvp1 -> addkvp ("Jon", "locust team");
$kvp1 -> addkvp ("Tchad", "volontär");
$kvp1 -> addkvp ("Jon", "volontär");
$kvp1 -> addkvp ("Steve", 'Medborgaren Forester');
$kvp1 -> addkvp ("Dave", "Musik Fan");
# Skriv ut Dumper $kvp1;
Skriv ut $kvp1 -> map2str(). "\n";
$kvp1 -> invertkvp();
Skriv ut $kvp1 -> map2str(). "\n";
min $locust_team = $kvp1 -> getvalue ("locust team");
skriva ut "locust team montera! ATTN: ". Join ("",. "\n";
hemkomst.
}

Utgång (dessa munkar inte en chans!)

teststub1
Dave, 1, musik Fan
Dave, 1, locust team
Jon, 1, locust team
Jon, 1, volontär
Mike, 1, locust team
Tchad, 1, locust team
Tchad, 1, volontär
Steve, 1, medborgaren Forester

Musikälskare, 1, Dave
Locust team, 1, Dave
Locust team, 1, Mike
Locust team, 1, Jon
Locust team, 1, Tchad
Medborgaren Forester, 1, Steve
volontär, 1, Jon
volontär, 1, Tchad

Locust team montera! ATTN:Dave Mike Jon Chad

Testfall 2: 1 potatis 2 potatis...

Vi kan ta reda på om det finns mer än 1 potatis

Koden

sub-teststub2 {< br > print "teststub2\n";
min $kvp1 = pairwise -> new();
$kvp1 -> addkvp ('potato1', 'röd');
$kvp1 -> addkvp ('potato2', 'blå');
$kvp1 -> addkvp ('potato1', 'blå');
$kvp1 -> addkvp ('potato1', 'röd');
$kvp1 -> addkvp ('potato2', 'blå');
$kvp1 -> addkvp ('potato3', 'röd');
$kvp1 -> addkvp ('potato4', 'röd');
$kvp1 -> addkvp ('potato4', 'röd');
#print $kvp1 -> map2str(). "\n";
$kvp1 -> invertkvp();
#print $kvp1 -> map2str(). "\n";
#Mr potatis imitatörer...
min $redpotatos = $kvp1 -> getvalue('red');
om (skalär (gt '1') {
skriva ut "mer än 1 röd potatis här \n";
} annat {
skriva ut "ingenting är här... flytta längs \n";
}
}

Utgång (Tillkännagivande storleken på matrisen ger en indikation av länk styrka)

teststub2
Mer än 1 röd potatis här

Testfall 3: Jakten på den röda potatisen

I logik finns det ett koncept av . Modus Tollens. MT kokar ner "förneka därav."

Sade en annan väg, om p antyder q och q inte har då du inte har p
Vi kommer att använda detta som en del av en process för eliminering för att hitta den sanna---uhhh---röd potatis.

Koden

sub teststub3 {
skriva ut "teststub3\n";
min $kvp1 = pairwise -> new();
$kvp1 -> addkvp ('potato1', 'blå');
$kvp1 -> addkvp ('potato2', 'röd');
$kvp1 -> addkvp ('potato1', 'röd');
$kvp1 -> addkvp ('potato1', 'blå');
$kvp1 -> addkvp ('potato2', 'röd');
$kvp1 -> addkvp ('potato3', 'blå');
$kvp1 -> addkvp ('potato4', 'blå');
$kvp1 -> addkvp ('potato4', 'blå');

Skriv ut "från och med: \n";
Skriv ut $kvp1 -> map2str(). "\n";

$kvp1 -> invertkvp();
min $bluelist = $kvp1 -> getvalue('blue');

foreach () mitt $tot
$kvp1 -> removekey($tot);
Print "ta bort $tot från consideration\n";
}
skriva ut "Modus Tolens inte blå: \n";
Skriv ut $kvp1 -> map2str(). "\n";
}

Utgång (Observera trots flera associativa länkar, potatis med blå föreningar togs bort i 1 steg)

Mer än 1 röd potatis här < br > teststub3
börjar med:
potato4, 2, blå
potato2, 2, röd
potato3, 1, blå
potato1, 2, blå
potato1, 1, röd
ta bort potato4 från behandling
ta bort potato3 från behandling
ta bort potato1 från behandling
Modus Tolens inte blå:
potato2, 2, röd

Testfall 4: Histogram & hitta skärningspunkter

Så om värdena representerar en koordinat för en specifik nyckel, kan det vara möjligt att fastställa korsningar

Kod:

sub-teststub4 {< br > print "teststub4 hitta interesection av definierade points\n";
min $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");
Skriv ut "från och med: \n";
Skriv ut $kvp1 -> map2str(). "\n";
$kvp1 -> invertkvp();

min $multi = $kvp1 -> nonuniqkeys();
skriva ut "nonuniqkeys returnerar en hash av nycklar med flera föreningar / overlaps\n". Dumper $multi;

$multi = $kvp1 -> nonuniqkvp();
Skriv ut "nonuniqkeys returnerar en hash av kvp definieras flera gånger \n". Dumper $multi;

}

Produktion: (Observera att fältet innehåller kommatecken och separatorn är som standard ett kommatecken. Detta illustrerar hur tokenizing kan göras mer komplicerat. Seperator funktionen kan användas för att ändra vad metoden map2str ansluter fälten på... Alternativt kunde man strategiskt dra nytta av situationen. I båda fallen kan konsekvent repeterbara genomförande utvecklaren att förstå och arbeta med beteendet. )

teststub4 att hitta skärningspunkten mellan definierade punkter < br > börjar med:
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 returnerar en hash av nycklar med flera föreningar / överlappar
$VAR1 = {
"2,2" = > {
'wire1' = > 1,
'wire2' = > 1
}
};
nonuniqkeys returnerar en hash av kvp difined flera gånger
$VAR1 = {
"2,4" = > {
'wire1' = > 2
}
};

Se Steg
Relaterade Ämnen

Bygga en Robot med Perler pärlor

Inte du hatar när en rubrik lovar du något som författaren inte kan leverera senare? Jag antar att jag är skyldig till att. Naturligtvis bygga du inte en robot med perler pärlor. Men du kan bygga något som ser ut som en robot. Så här går vi:Steg 1: V...

Alligator leder med integrerad säkring innehavare för säkra anslutningar till bly-syrabatterier

jag gillar inte bränder. Jag ogillar särskilt bränder i mitt tält eller på min sovsäck. Detta instructable Detaljer de steg som jag använde för att skapa ett par alligator leder med integrerad säkringshållare så att något jag koppla upp med alligator...

Gameboy Perler bead halsband

jag gjorde dessa awesome kedjar ut pf perler pärlor. Im börjar sälja dessa så kolla in min hemsida för mer http://pixeljunkiedesigns.bigcartel.com...

Lite Banging med Raspberry pi för I2C kontroll med perl

Första lite allmänna bakgrundAtt använda många av I2C till parallellporten IC med Raspberry pi du behöver för att kunna manipulera data lite klokt. Gör oftast du i en micro controller, men med pi finns det mycket mer makt att göra andra saker så när...

Varmlimma anslutningar

jag använda varmt lim för att täcka anslutningar mellan 2 kablar så att de är förseglade och inget kan röra dem, det är ett billigt och snabbt sätt att skydda dig tråd anslutningar...

8-bitars skrivbord Standees från Perler pärlor

denna guide visar dig hur man gör 8-bitars stående siffror från perler pärlor!Steg 1: Samla dina leveranser! 1. ett sortiment av Perler pärlor2. Perler bead stödraster3. Perler bead specialpapper4. pincett5. strykjärn6. rensa själv stående fotoramar...

Traffic Light Control montera och 120 VAC anslutningar

syftet med detta Instructable är att visa hur man tillverka ett fäste och ansluta en AC Traffic Light Control Board.Vänligen rösta. Bortom komfort zon!Detta är min första gången du installerar en förbyggda kontroll ombord av något slag och eftermonte...

Faran med slack elektriska anslutningar, och fastställande av dem!

i världen av elektrisk ström är det viktigt att alla anslutningar göras ordentligt. Det är måste vara tät (inte så hårt att du band trådar av bultar/skruvar) att förhindra hög motståndskraft kontakter som kommer att skapa värme.Lödning av strömförsör...

Hur man gör anslutningar vid piren 9

Vill träffa människor i elektronik lab men har ingen aning om vad du talar om? Göra vissa anslutningar! Fråga dem om ett projekt som misslyckades i fältet, chansen är det på grund av en lös anslutning.Vi har alla varit där med projekt som inte preste...

3D BB-8 från Star Wars | Pärlmix Sprites (Perler/Hama pärlor)

Fans av Star Wars kommer att erkänna denna lilla droid som visas i den senaste filmen Star Wars: The Force vaknar som följe av en av den kvinnliga huvudpersonen Rey.Skapa din egen lilla BB-8 efter denna enkla nerdy handledning och ha honom dekorera o...

Donkey Kong hylla med Perler pärlor

Hej, alla! Välkommen till min andra instructable! (Jag är fortfarande ung, så vänligen inte vara oförskämd) Idag ska jag visa dig hur man gör en Donkey Kong tema hylla med Perler pärlor.Mamma säger: "vi gör inte hela hyllan med Perler pärlor, bara an...

Pingvin Perler Bead glasunderlägg

Du behöver:Perler pärlorEn rund pinne ombordBakplåtspapperStrykjärnNu kopiera pingvin design med färgen på ditt val. När du är klar, täck hela lappa med vissa bakplåtspapper. Stryka bit försiktigt tills alla pärlor är smält och ansluten. Vänta ett pa...

Hur man gör en våg Perler Bead armband för barn

Perler pärlor inte bara kan användas i många utföranden med hjälp av järn, men också kan göras till många andra projekt. Här är en perler bead Armband gjord av Amanda. Hoppas du kommer att älska hennes arbete!Steg 1:Perler pärlorElastisk trådSteg 2:...

Automatiserad belysning med DMX och Perl

varför automatisera dina lampor?Tja, för att vara ärlig, de flesta av mitt hus är automatiserad, så det kändes det självklara sak att göra.Det finns massor av fördelar i automatisera delar av ditt hus, belysning i synnerhet gör bara livet lättare, la...

Dragavlastning - tråd till styrelsen anslutningar

Under åren har jag kämpat med lämplig tråd-till-board anslutningar.Här är en av stöttepelarna OMSIS som jag har tillsammans valt att jag vill dela: allt du behöver göra ärSteg 1: lägga till ett hål i din tryckt kretskortSteg 2: route kabeln genom hål...

Arduino mayhew mux shield - kabel anslutningar lösningar (techshop)

väl jag testat Mayhew Mux sköld och det fungerar som annonseras. Jag plopp skölden på min arduino uno och jag får 48 kanaler. Skölden använder digital pins 2,3,4,5 och analoga stift 0,1,2. Så får du 48 analoga ingångar/utgångar till priset av 7 stift...

3D Perler Boba Fett

Detta instructable är för en Voxelized Boba Fett kan du göra din egen från perler pärlor, hama pärlor, nabbi pärlor eller någon typ av melty pärlor (helst jag använder Perler). Du kan titta på videon och följa med om du vill.(Vänligen kreditera mig b...

DIY 3D Perler Darth Vader

Detta instructable är för en Voxelized Yoshi kan du göra din egen från perler pärlor, hama pärlor, nabbi pärlor eller någon typ av melty pärlor. Du kan titta på videon och följa med om du vill.(Vänligen kreditera mig bör du använda eller manipulera d...

Elektriska anslutningar på 3D tryckt IPad Mount

Jag är för närvarande en elektroteknik Undergraduate Student vid Washington State University. I vår sista året slutföra vi en kurs som heter senior design. För mitt lag projektkurs var vi uppdrag att skapa ett hjälpmedel för att se nedsatt.Vad som eg...