ActivePerl Variabel Typer och Context Grunderna i ActivePerl - Del 11 Inledning Detta är en del 11 av min serie, Grunderna i ActivePerl. I denna del av serien, tittar vi på vad som kallas ActivePerl datatyper och vad som också kallas skalära sammanhang och listan sammanhanget. Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser. Den datatyper Perl har tre inbyggda datatyper, som kallas skalärer, matriser och hashar.
Betydelse av en skalär Enkelt uttryckt är en skalär en sträng eller ett nummer. Alla variabel som identifierar en skalär börjar med $. En skalär är vad vi har att hänvisa till som en enkel värde. Exempel, min $ var; $ var = "någon text eller ett nummer utan citationstecken"; Vi har sett många exempel på skalär. Innebörden av en Array En array är en ordnad lista med skalärer. Vi har sett exempel på detta. Alla variabel som identifierar en rad måste börja med @. Innebörden av Hash En hash är en oordnad lista med skalärer.
En huvudsaklig skillnad mellan en hash och en array är att värdena på hash indexeras av associerade strängnycklar, medan värdena för en array som indexeras av siffror. Alla variabel som identifierar en hash börjar med%. Vi har sett exempel på hashar. Gäller variabel namn Av ovanstående ser vi att en variabel börjar med antingen $, @ eller%. Efter det bör du ha en bokstav eller understreck. Efter det kan du ha valfritt antal streck, bokstäver eller siffror i valfri ordning, för att bilda variabelnamn. En lista är en samling av skalärer separerade med kommatecken, avgränsade av parenteser.
Ett exempel är: ("den första", "andra", 3) Det finns tre skalärer där: två strängar och en siffra. Du kan ha listor på båda sidor av tilldelningsoperatorn. Tänk på följande rad: (min $ 1, min $ två, min $ 3) = ("den första", "andra", 3); Det finns två listor här: en till vänster om tilldelningsoperatorn och den andra till höger om tilldelningsoperatorn. Jag avsiktligt gjort båda listorna ha tre skalärer vardera. Listan till höger har verkliga skalärer. Den till vänster har endast variabler.
Var och en av variablerna för listan till vänster, kommer att hålla motsvarande skalär från listan till höger. Jag hoppas att ni uppskattar betydelsen av listan i ActivePerl. Läs och prova följande kod: använd strikt; print "Content-Type: text /html \\ n \\ n"; (min $ 1, min $ två, min $ 3) = ("den första", "andra", 3); print $ 1; print "print $ 2, print" print $ 3; print "Du bör ha de tre skalära värden visas en lista kan tilldelas till en annan lista med motsvarande variabler som visas ovan dock en förteckning kan också tilldelas en uppsättning som visas i följande kod (läs och prova)..
: Använd strikt, print "Content-Type: text /html \\ n \\ n", minarr = ("den första", "andra", 3), printarr, Denna metod för att tilldela en lista är att föredra, då du vet inte antalet element i listan, eller när listan är mycket lång argument till en funktion Vi har sett utskriftsfunktionen I den första koden exemplet ovan har vi ut $ 1,.. Det kan också vara "print (en $), "men konsolerna är oftast utelämnas I ett av de tidigare kapitel såg vi något liknande: push (hisArr, (." xxx "," yyy "," zzz ")), Den är push-funktionen för matrisen. Det har också konsoler. Konsolerna har objekt inuti.
Här har jag nämnt utskrifts och tryckfunktioner. Alla vad du har innanför fästena i en funktion som i de två ovanstående fall kallas argument. I fallet med utskrifts ovan är argumentet $ en, som är en skalär. I fallet med tryck argumenten ärhisArr och ("xxx", "yyy", "zzz"). Dessa två argument är listor. En array är en ordnad lista, och det är det första argumentet. Det andra argumentet är en bokstavlig lista. De yttersta fästen för argumenten i en funktion kan uteslutas.
Skalär sammanhang om någon åtgärd skulle återvända en skalär eller skulle ha en skalär som argument, säger vi ActivePerl arbetar i en skalär sammanhang på den punkten. Tänk dig följande exempel: min $ var = "strängen"; Detta är en mycket enkel förklaring och det är skalär sammanhang, eftersom vi har att göra med skalärer på vardera sidan av tilldelningsoperatorn. Tänk på följande. print ($ 1); Argumentet av utskriftsfunktionen är en skalär, så det är en skalär kontext.
Lista sammanhang om någon åtgärd skulle återvända en lista eller skulle ha en lista som argument, säger vi ActivePerl arbetar i en lista sammanhang på den punkten. Tänk dig följande exempel: (min $ 1, min $ två, min $ 3) = ("den första", "andra", 3); På ömse sidor om tilldelningsoperatorn, har vi en lista, så vi har en lista sammanhang. Tänk på följande: push (hisArr, ("xxx", "yyy", "zzz")); De två argument tryckfunktionen är listor, så vi har en lista sammanhang. I vissa fall argument av funktioner kan bestå av skalärer och lista. I så fall ActivePerl arbetar på båda sammanhangen.
Obs: hashen är ett slags lista. Villkorlig Bakgrund Beroende på skick, kan du arbeta i en skalär eller lista sammanhang. När du lär dig ActivePerl, du höra dessa villkor. Jag ska ge några exempel här. Tänk dig följande array: minarr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "SV58", "TG45", "RE69"); När du har skapat gruppen, skulle dess utbud variabel beter sig som en åtgärd och skulle återvända antingen längden (skalär) i matrisen eller en förteckning över de delar av gruppen, beroende på om det är tilldelad en skalär eller array ( lista).
När det returnerar en skalär, arbetar du i en skalär sammanhang. När det returnerar en lista, arbetar du i en lista sammanhang. I följande kod arrayen variabel tilldelas en skalär, så det returnerar längden av uppsättningen (det vill säga hur ActivePerl har gjorts för att vara - returnera en skalär av array variabeln när delas en skalär). Läs och försök koden.
use strict; print "Content-Type: text /html \\ n \\ n"; minarr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "SV58", "TG45", "RE69"); min $ scal =arr; print $ scal; I följande kod arrayen variabel tilldelas till en lista, så den returnerar en lista över element i uppsättningen (dvs hur ActivePerl har gjorts för att vara). Läs och försök koden.
use strict; print "Content-Type: text /html \\ n \\ n"; minarr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "SV58", "TG45", "RE69"); minli =arr; skriva utli; Hash nycklar och värden funktioner revisited I Perl eller ActivePerl specifikation, sägs det att hash nycklar funktionen skulle returnera en lista över alla nycklar i hash om att arbeta i listan sammanhang eller det skulle återvända antalet nycklar i hash om att arbeta i skalär sammanhang. Så i listan sammanhang returnerar en lista; i skalär sammanhang returnerar ett skalär (antal).
Detta innebär att om du tilldelar det returnerade värdet för den funktion som en matris, har du en lista; om du tilldelar den till en skalär du har en skalär. Läs och prova följande kod där nycklarna funktionen finns med i listan sammanhang, återvänder en lista eftersom det returnerade värdet tilldelas en grupp.
use strict; print "Content-Type: text /html \\ n \\ n"; min% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron => "grön"); minaar = nycklar (% fruitColor); printar; Läs och prova följande kod där nycklarna funktionen är skalär sammanhang, återvänder en skalär eftersom det returnerade värdet tilldelas en skalär.
use strict; print "Content-Type: text /html \\ n \\ n"; min% fruitColor = (Apple => "purple", Banana => "gul", päron => "gröna", citron =>
Anslutning Checker