Sådan genereres dynamisk en liste i Perl
En Perl-liste er en samling af genstande i en sekvens. For at oprette en liste skal du bruge "@" -symbolet før en navngivningserklæring. Du kan oprette dynamiske lister, mens dit program kører ved at skrive koden for at tillade det. For eksempel kan du bede brugeren om nogle startoplysninger og genererer derefter en liste over tal for at passe til kriterierne.
Brugerbeder
For at vide, hvilke værdier brugeren ønsker i sin dynamisk oprettede liste, skal du bede hende om nogle oplysninger. I hvert fald skal du vide, hvor mange numre hun ønsker i listen, og rækkevidden af værdier for disse tal. Brug funktionen "Udskriv" til at spørge brugeren om antallet af elementer og skriv "$ num =;" for at gemme den værdi i $ num-variablen. Spørg derefter for området og skriv "$ range =;" for at gemme den værdi i $ variablen.
Rand Funktion
Rand-funktionen genererer dynamisk et tilfældigt tal med en vis fleksibilitet. Som standard opretter det et decimaltal mellem nul og en. Ved at kombinere det med "int" -funktionen kan du oprette hele tal, og du kan også inkludere en rækkevidde som parameter. Hvis brugeren f.eks. Gemmer "50" som det interval, du bad ham om, skal du skrive "$ random = int (rand ($ range + 1));" skaber et tilfældigt tal mellem nul og 50. Du skal tilføje "+1" til erklæringen, ellers vil rækkevidden være nul til 49.
Tryk funktion
Du bruger "push" -funktionen til at tilføje et nyt element til enden af en Perl-liste. Det kræver to parametre: listen der skal tilføjes, og den nye værdi. For eksempel skriver du "push (@list, $ random);" tilføjer den værdi, der er gemt i $ random-variablen til listen. Alternativt kan du bruge funktionen "unshift" til at tilføje et element til begyndelsen af et array, men når du opretter et dynamisk array fra bunden, er det ligegyldigt, hvilken side du tilføjer nye elementer.
Til Loop
For at generere listen skal du bruge en "for" -sløjfe. For tællervariabelen, start ved en, skal den gå, indtil den er lig med $ num-variablen, og øg den med en. Skriv for eksempel "for ($ i = 1; $ i <= $ num; $ i ++)" for at oprette sløjfen. Indenfor behøver du kun at bruge to linjer kode: opkald til randfunktionen og push-funktionerne. Når sløjfen er færdig, vil du have en dynamisk genereret liste over tal.