Grunnleggende om ActivePerl Variable Scope grunnleggende om ActivePerl - Del 15 Innledning Dette er del 15 av min serie, grunnleggende om ActivePerl. I denne delen av serien ser vi på det som kalles variabel omfang. En blokk er et sett av utsagn vedlagt i klammeparentes, som er {og}. Spørsmålet her er: hvis en variabel er deklarert utenfor en blokk vil det bli sett i blokken? På den annen side, hvis det er erklært inne i blokken, vil det sees utenfor blokken? Blokker ikke forekommer tilfeldig i kode. Det er visse konstruksjoner som har blokker.
Følgende konstruksjoner har blokker: hvis du for, foreach og sub. Vi har sett alle disse konstruksjonene. For resten av denne opplæringen, ser vi på den hvis du for og under konstruerer og hvordan variable siktet påføres dem. Reglene disposisjon i denne opplæringen er aktuelt når setningen, "bruke streng;" anvendes på toppen av koden. Som du prøve kodeeksempler i denne opplæringen, kan du få feilmeldinger; ikke bry deg om de feilmeldinger for nå. 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. If Construct og Variable Scope Les og prøv følgende kode: bruke strenge; print "Content-Type: text /html \\ n \\ n"; min $ hisVar = "hans skalar"; if (25 == 25) {print $ hisVar; min $ herVar = "henne skalar"; } #print $ HerVar; Hvis betingelsen er hvis 25 er lik 25. Nå er denne tilstanden vil alltid returnere true, og så hvis blokken vil alltid bli henrettet. Utenfor if-blokken, er variabel, $ hisVar deklarert og tildelt verdi, "hans skalar". Inne i if-blokken er det en uttalelse for å skrive $ hisVar.
Denne variabelen ble erklært utenfor blokken; hvis det er sett inne i blokken, vil det bli skrevet ut. Hvis du prøvde koden du ville ha lagt merke til at verdien av $ hisVar ble skrevet ut. Nå inne i blokken, ble en ny variabel, $ herVar erklært og hadde en verdi tildelt. Utenfor blokken, er en kommentar. Denne kommentaren er faktisk en uttalelse innledes med kommentaren denotation, #. På grunn av dette fortegn, er uttalelsen ikke utført. Hvis du fjerner den kommentaren og re-prøve koden, vil følgende forklaring følger: The $ herVar variable er deklarert inne i blokken.
Nå, hvis det er sett utenfor blokken, så den siste setningen (uten kommentaren betegnelse) ville skrive sin verdi. Fjern # symbol og prøve koden og merk at den siste utskrifts uttalelsen ikke v