Grunderna i ActivePerl Variabel Räckvidd Grunderna i ActivePerl - Del 15 Inledning Detta är en del 15 av min serie, Grunderna i ActivePerl. I denna del av serien, tittar vi på vad som kallas variabel omfattning. Ett block är en uppsättning uttalanden inneslutna i klammerparenteser, som är {och}. Frågan här är: Om en variabel deklareras utanför ett block kommer det att framgå i blocket? Å andra sidan, om det deklareras inuti blocket, kommer det att ses utanför blocket? Block förekommer inte godtyckligt i koden. Det finns vissa konstruktioner som har block.
Följande konstruktioner har block: om, för, foreach och sub. Vi har sett alla dessa konstruktioner. För resten av den här guiden, tittar vi på om du till och under konstruktioner och hur variabel omfattning tillämpas på dem. Reglerna kontur i den här guiden är tillämpliga när ett uttalande, "användning strikt;" används vid toppen av koden. Som du försöker kodexemplen i den här guiden kan du få felmeddelanden; oroa dig inte om felmeddelanden för nu. 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. If Construct och Varierande räckvidd Läs och prova följande kod: använd strikt; print "Content-Type: text /html \\ n \\ n"; min $ hisVar = "hans skalär"; if (25 == 25) {print $ hisVar; min $ herVar = "hennes skalär"; } #print $ HerVar; Villkoret if är om 25 är lika med 25. Nu detta tillstånd kommer alltid att återgå sant, och så om blocket kommer alltid att utföras. Utanför if-blocket är variabeln $ hisVar deklarerats och tilldelas värdet ", hans skalär". Inne i if-blocket finns ett uttalande för att skriva ut $ hisVar.
Denna variabel förklarades utanför block; om det ses inuti blocket, kommer det att skrivas ut. Om du försökte koden skulle du har märkt att värdet på $ hisVar trycktes. Nu, inuti blocket har en ny variabel, $ herVar deklareras och hade ett värde som tilldelats den. Utanför blocket, det är en kommentar. Denna kommentar är faktiskt ett uttalande föregås av kommentaren denotation, #. På grund av denna föregående tecken, är uttalandet inte verkställts. Om du tar bort kommentaren och åter försöka koden, kommer följande förklaring följer: The $ herVar variabeln deklareras inuti blocket.
Nu, om det ses utanför blocket, sedan det sista uttalandet (utan kommentar beteckning) skulle skriva sitt värde. Ta symbolen # och försök koden och n