Hvordan bruke Strict i et Perl-skript

I Perl programmering, den "strenge" søkeord beskytter mot usikre data konstruksjoner. Det endrer noen av koden krav og instruerer tolk for å se etter visse andre søkeord. Ved hjelp av strenge erklæringer bidrar programmet til å bedre forstå dine intensjoner, for eksempel hvis du mener å bruke en subrutine å tilordne verdier til en variabel, men glemmer å definere sub. I programmet kan du angi streng erklæring variabler, referanser, subrutiner, eller alle de ovennevnte. Du kan også slå på streng erklæring hvor som helst i programmet ved hjelp av "bruke strenge" søkeord og slå den av senere ved hjelp av "ingen strenge" søkeord.

Bruksanvisning

1 Åpne et Perl program fil. Skriv inn følgende kode:

$ MyVar = "Noen verdi.";

print $ minvar;

Merk at den første variabel bruker en kapital "V" og den andre bruker en liten "v." Denne koden genererer ikke en feil, men det gjør egentlig ikke skrive noe til skjermen. Fordi Perl variabler er store og små bokstaver, mener programmet disse er to forskjellige variabler, den andre som ikke har en verdi. Hvis du endrer denne andre variabelen til "$ myVar," programmet vil skrive ut verdien til skjermen.

2 Slett tidligere linjene og skriv inn følgende kode:

bruke strenge;

$ MyVar = "Noen verdi.";

print $ myVar;

Disse linjene generere to run-time feil selv om variablene har samme navn; de blir brukt to ganger. Skrive "bruke strenge" tvinger eksplisitt erklæring av alle variabler, referanser og subrutiner.

3 Slett tidligere linjene og skriv inn følgende kode:

bruke strenge "vars";

min $ myVar = "Noen verdi.";

print $ myVar;

Den første linjen angir at programmet krever bare erklæring av variabler, men ikke referanser eller subrutiner. Den "min" søkeord erklærer lokale variabler. Koden i dette eksempelet fungerer akkurat slik du vil ha det til.

4 Slett tidligere linjene og skriv inn følgende kode:

bruke strenge;

min $ myVar = "Noen verdi.";

print $ myVar;

ingen streng "vars";

$ MyVar2 = "Noen ny verdi.";

print $ myVar2;

Den første linjen krever erklæring av variabler, referanser og subrutiner. Den fjerde linjen stopper programmet fra å kreve streng erklæring for bare variabler. Dette gjør at $ myVar2 variabelen som skal brukes uten å erklære det.

5 Slett tidligere linjene og skriv inn følgende kode:

bruke strenge "refs";

$ MyVar = "Noen verdi.";

$ Ref = "myVar";

skrive $$ ref;

Merk at dette eksempelet oppgir kun å bruke strenge referanser, noe som betyr at det er greit å ikke deklarere variabelen her. Hvis du bare brukte "bruke streng" i stedet, ville du må bruke "min" søkeord foran både $ myVar og $ dommeren å erklære dem. Men fortsatt genererer den tredje linjen en feil fordi du prøvde å bruke $ dommeren som en skalar referanse.

6 Slett tidligere linjene og skriv inn følgende kode:

bruke strenge "refs";

$ MyVar = "Noen verdi.";

$ Ref = \ $ myVar;

skrive $$ ref;

Den tredje linjen i dette eksemplet bruker omvendt skråstrek for å erklære referansen til $ myVar variabel, noe som gjør at du kan bruke den uten å generere en feil.

7 Slett tidligere linjene og skriv inn følgende kode:

$ MyVar = mySub;

print $ myVar;

Hvis "mySub" er ment å være noen subrutine som du har ennå til å definere, tildeler Perl "mySub" som en streng verdi til $ myVar og utskrifter som ordet til skjermen.

8 Slett tidligere linjene og skriv inn følgende kode:

bruke streng "subs";

$ MyVar = mySub;

print $ myVar;

Den første linjen krever subrutiner å bli erklært. Hvis du har kodet "mySub" tidligere i programmet, returverdien fra det er tildelt $ myVar, ellers en kjøretidsfeil genereres.