Introduksjon til ActivePerl spesielle variabler Grunnleggende ActivePerl - Part 14 Innledning Dette er del 14 av min serie, Grunnleggende om ActivePerl. I denne delen av serien ser vi på det som kalles ActivePerl Spesielle variabler. Dette er variabler som allerede har blitt erklært i Interpreter for deg. Du trenger ikke å erklære dem igjen. Under visse forhold, variablene erverve visse verdier. Som du lærer Perl, lærer du navnene på disse variablene, verdiene de erverve og under hvilke vilkår de skaffer verdiene.
Hvilke som helst av disse variablene faller inn under en av de tre datatyper. Så noen av disse variablene er en skalar eller en matrise eller en hash. Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser. To eksempler i denne delen av serien ser vi på to av variablene, som er $ _ og_. Førstnevnte er en skalar; det senere er en matrise. Den senere ble nevnt i en av de foregående kapitlene. Navnet på det første er _.
Det innledes med $ siden det er en skalar, i variabelnavnet. Navnet på senere er også _. Det er foran @ siden det er en matrise. Det finnes mange slike variabler allerede erklært for deg i ActivePerl tolk. Måten du vil erklære din egen variabel, er bare til å begynne med det reserverte ordet, min, deretter et mellomrom, etterfulgt av $, @ eller% og dem navnet på variabelen, deretter et semikolon for å gjøre en uttalelse. Etter det som du skriver koden din variabel skal tilegne verdi (eller verdier) avhengig av koden du skriver.
Disse spesielle variablene oppfører seg på en lignende måte, med den forskjell at de allerede har blitt erklært for deg i tolk. Også har under hvilke vilkår de skal tilegne seg visse verdier allerede blitt bestemt i tolk. De spesielle verdiene de skaffer avhenge av tilstanden. Du lærer forholdene og de oppkjøpte verdier som du lærer ActivePerl. I denne delen av serien, vi lærer de vilkår og ervervede verdier for $ _ og_, på grunnleggende nivå. Navnene på disse spesielle variablene er som tegnsetting tegn. Noen av dem er faktisk tegnsetting tegn, som med $ ?. Ikke bekymre deg om $? for nå.
Generelt navnene på disse variablene er ikke sannsynlig navnene du vil gi til din egen bruker erklærte variabler. Du vil normalt gi et navn til en variabel som du kan huske, som ibooks, der du ønsker bøker til å bety en rekke bøker. Så neppe ville det være konflikter mellom variabler og disse spesielle variabler. The $ _ Variabel Syntaksen for foreach konstruere er, foreach Vairable (liste) {#do noe} Hvis variabel (som er en skalar) i syntaksen er ikke skrevet, så $ _ ville ta sin plass. Du kan deretter bruke $ _ inne i blokken som du vil bruke, variabel.
Vurdere følgende kode fragment: foreach min $ item (theArr) {print $ element, "} Hvis du ikke skriver $ element variabel, deretter den spesielle variabel, $ _ ville ta plassen til $ element variabel Blokken. av koden må skrives som, foreach (theArr) {print $ _, "} ble $ element ikke skrevet i den første linjen i konstruksjonen, så inne i blokken, $ _ ble brukt i stedet.
Les og prøv følgende kode: bruke strenge; print "Content-Type: text /html \\ n \\ n"; mintheArr = ("HBWE", "FGTR", "HTNK", 4587, 4526, 4053, "AB12", "GB58", "TG45", "RE69"); foreach (theArr) {print $ _, "} Jeg håper du nå sette pris på tilstanden og verdier i veien $ _ har opptrådt. Det er andre situasjoner i ActivePerl der $ _ brukes. Situasjonene er lik den som nettopp har beskrevet . Den_ Variable Når du ringer til en subrutine (funksjon) med argumenter, når funksjonen blir utført, alle argumentene vil være medlemmer av den spesielle variable,_.
Så, innen en subrutine matrisen_ inneholder argumenter som sendes til at subrutinen. Denne rekken variabelen er allerede forhåndserklært i tolk. Du trenger ikke å erklære den igjen. Når en subrutine kalles, verdiene av denne matrisen blir verdiene av de argumenter som sendes til subrutinen. Rekken ._ er fylt, begynner fra første indeks
(0) Hvis subrutinen kalles uten argumenter, deretter matrisen vil være tom Les og prøv følgende kode:.
bruke strenge; print "Content-Type: text /html \\ n \\ n "; sub mySub {print $ _ [0],"} mySub ("en", "to", "tre"); Subrutinen kalles med tre argumenter ("en", "to", "tre"). Når den subrutinen blir utført, er verdien av det første element av_ verdien av det første argumentet, er verdien av det andre elementet av verdien av den andre argument, og at det tredje element er verdien av det tredje argumentet . Merk: Siden navnet på tabellen,_, er _, elementene i matrisen, er $ _ [0], $ _ [1], $ _ [2], etc.
Passing Lister som argumenter for å underrutiner Spørsmålet du kan ha er dette: hva skjer hvis argumentet passert er en matrise eller en hash. Hvis argumentet er en matrise eller en hash, i funksjonen den kollapser (blir flatt) miste sin identitet og sine elementer blir verdiene av_ array. La oss demonstrere dette med et eksperiment.
Les og prøv følgende kode: bruke strenge; print "Content-Type: text /html \\ n \\ n"; min $ scal = "en"; minarr = ("to", "tre"); min% HSH = (DDD => "fire", EEE =>