Hvordan å programmere med Perl

Hvis du bruker et Unix-system, er din Perl tolk ligger i /usr /local /bin /perl. Hvis du kjører Windows, må du laste ned en plattform
Trinn 1
din første Perl Program
Ta følgende tekst og sette det inn i en fil som heter first.pl.
#! /usr /local /bin /perl print "Hei der \\ n"; plakater (Tradisjonelt første programmene er ment å si Hei verden !, men jeg er en iconoclast.)
nå, kjøre den med din Perl tolk. Fra en kommandolinje, gå til katalogen med denne filen og skriv perl first.pl. Du skal se:
Hei
\\ n angir "newline '' karakter, uten det, betyr Perl ikke hoppe til en ny tekstlinje på egen hånd
Trinn 2 product:!. funksjoner og uttalelser
Perl har et rikholdig bibliotek av funksjoner
. de er verbene i Perl, kommandoene at tolken kjører. Du kan se en liste over alle de innebygde funksjonene på perlfunc hovedsiden. Nesten alle funksjoner kan bli gitt en liste over parametere
, som er atskilt med komma.
utskrifts~~POS=TRUNC funksjonen~~POS=HEADCOMP er en av de mest brukte delene av Perl. Du bruker den til å vise ting på skjermen eller til å sende informasjon til en fil (som vi vil diskutere i neste artikkel) det tar en liste over ting til utgang som parametere
print "Dette er en enkelt setning.";.. print "Se, "," a "," list ";!, en Perl program består av uttalelser
, som hver avsluttes med et semikolon uttalelser trenger ikke å være på egne linjer;. det kan være flere uttalelser på en linje eller en enkelt setning kan deles på tvers av flere linjer
print "Dette er."; skrive ut "to uttalelser \\ n."; print "Men dette", "er bare en uttalelse \\ n.";
Trinn 3
tall, strenger og Kursutvikling
Det er to grunnleggende datatyper i Perl:. tall og strenger
Tall er lett; vi har alle jobbet med dem. Det eneste du trenger å vite er at du aldri sette komma eller mellomrom til tall i Perl. Alltid skrive 10000, ikke 10000 eller 10 000.
Strings er litt mer komplisert. En streng er en samling av tegn i enten enkle eller doble anførselstegn:
'Dette er en test. "Hei! \\ N"
forskjell mellom enkeltstående sitater og doble anførselstegn er at apostrof bety at innholdet skal tas bokstavelig
, mens anførselstegn betyr at innholdet skal være tolkes
. For eksempel er tegnet sekvens \\ n et linjeskift karakter når den vises i en streng med anførselstegn, men er bokstavelig talt to tegn, skråstrek og n, når den vises i enkle anførselstegn.
Print "Denne strengen \\ nshows opp på to linjer. "; print 'Denne strengen \\ n dukker opp på bare én.'; product: (. To andre nyttige backslash sekvenser er \\ t for å sette inn et tabulatortegn, og \\\\ å sette inn en skråstrek i en dobbel-sitert streng)
Trinn 4
variabler
Hvis funksjonene er Perls verb, da variablene er dens substantiver. Perl har tre typer variabler: scalars
, arrays Hotell og hashes
. Tenk på dem som "ting", "" lister "," og "ordbøker. '' I Perl, alle variabelnavn er et skilletegn, et brev eller understrek, og en eller flere alfanumeriske tegn eller understrek.
Scalars
er enkle ting. Dette kan være et tall eller en streng. navnet på en skalar begynner med et dollartegn, for eksempel $ jeg eller $ kuleramme. Du tilordner en verdi til en skalar ved å fortelle Perl hva det tilsvarer , som så:
$ i = 5; $ pie_flavor = 'eple'; $ constitution1776 = "det People, etc.";
Du trenger ikke å angi om en skalar er et tall eller en streng . det spiller ingen rolle, fordi når Perl trenger for å behandle en skalar som en streng, det gjør, når det er behov for å behandle det som et tall, det gjør konverteringen skjer automatisk (Dette er forskjellig fra mange andre språk, hvor.. strenger og tall er to separate datatyper)
Hvis du bruker en dobbel-sitert streng, vil Perl sette verdien av alle skalar variabler you name i strengen Dette er ofte brukt til å fylle ut strenger på fly..
$ apple_count = 5; $ Count_report = "Det er $ apple_count epler."; print "Rapporten er: $ count_report \\ n";
endelige resultatet fra denne koden er rapporten er: Det er 5 epler ..
Tall i Perl kan manipuleres med de vanlige matematiske operasjoner: tillegg, multiplikasjon , divisjon og subtraksjon. (Multiplikasjon og divisjon er angitt i Perl med * og /symboler, forresten.)
$ A = 5; $ B = $ a + 10; # $ B er nå lik 15. $ c = $ b * 10; # $ C er nå lik 150. $ a = $ a - 1; # $ A er nå fire og algebra lærerne cringing
Du kan også bruke spesielle operatører som ++, -., + = - =, /= Og * =. Disse manipulere en skalar verdi uten to elementer i en ligning. Noen liker dem, andre ikke. Jeg liker det faktum at de kan gjøre koden klarere
$ a = 5.; $ A ++; # $ A er nå 6; vi lagt en til det. $ A + = 10; # Nå er det 16; vi lagt til 10. $ a /= 2; # Og delt den med 2, så det er 8.
Strings i Perl har ikke fullt så mye fleksibilitet. Om det bare grunnleggende operatør som du kan bruke på strenger er sammensetning
, som er en $ 10 måte å si `` satt sammen. '' The sammensetning operatør er den perioden. Sammenkobling og tillegg er to forskjellige ting:
$ a = "8"; # Merk anførselstegn. $ A er en streng. $ B = $ a + "1"; # "1" er en streng også. $ C = $ a. "1"; # Men $ b og $ c har ulike verdier!
Husk at Perl konverterer strenger til tall transparent når det er nødvendig, så for å få verdien av $ b, Perl tolk konvertert to strenger "8" og "1" til tall, og deretter lagt dem. Verdien av $ b er nummer 9. Men $ c brukt sammensetning, slik at verdien er strengen "81".
Bare husk, plusstegnet legger tallene
og perioden setter strenger sammen
.
Arrays
er lister av skalarer. Array navn som begynner med @. Du definerer arrays med å liste innholdet i parentes, atskilt med komma:
lotto_numbers = (1, 2, 3, 4, 5, 6); # Hei, det kan skje. months = ( "July", "August", "September"), (?.. Hvorfor ikke en fordi det er en datamaskin ting)
Innholdet i en matrise er indeksert
begynner med 0. for å hente elementene i en matrise, du erstatter @ -tegnet med en $ tegn, og følger det med indeksen posisjonen til elementet du ønsker. (Det begynner med et dollartegn fordi du får en skalar verdi.) Du kan også endre den på plass, akkurat som alle andre skalar.
months = ( "July", "August", "September"); print $ måneder [0]; # Dette skriver "juli". $ måneder [2] = "Smarch"; # Vi bare omdøpt September!
Hvis en rekke ikke finnes, forresten, du vil lage den når du prøver å tilordne en verdi til en av dens elementer.
$ Winter_months [0] = "desember "; # Dette skaper implisittwinter_months
Arrays alltid returnere innholdet i samme rekkefølge.; hvis du går gjennommonths fra begynnelse til slutt, uansett hvor mange ganger du gjør det, vil du få tilbake juli, august og september i den rekkefølgen. Hvis du ønsker å finne lengden av en matrise, bruke verdien $ # array_name. Dette er en mindre enn antallet elementer i tabellen. Hvis tabellen bare ikke eksisterer eller er tom, er $ # array_name -1. Hvis du ønsker å endre størrelsen på et array, bare endre verdien av $ # array_name
months = ( "July", "August", "September."); print $ # måneder; # Dette skriver 2. $ a1 = $ # autumn_months; # Vi har enautumn_months, så dette er -1. $ # Måneder = 0; # Nåmonths bare inneholder "July"
hasher
kalles `` ordbøker '' i noen programmeringsspråk, og det er hva de er. Et begrep og en definisjon, eller i mer korrekt språk en -tasten Hotell og en verdi
. Hver nøkkel i en hash har en og bare en tilsvarende verdi. Navnet på en hash begynner med et prosenttegn, som% foreldre. Du definerer hashes med kommaseparerte par av nøkkel og verdi, som så:
% days_in_month = ( "July" = > 31, "August" = > 31, "September" = > 30);
Du kan hente noen verdi fra en hash ved å henvise til $ hashname {nøkkel}, eller endre den på plass akkurat som alle andre skalar
print $ days_in_month { "september"}.; # 30, selvfølgelig. $ Days_in_month { "februar"} = 29; # Det er et skuddår.
Hvis du ønsker å se hva tastene er i en hash, kan du bruke tastene funksjon med navnet på hasj. Dette returnerer en liste som inneholder alle nøklene i hasj. Listen er ikke alltid i samme rekkefølge, skjønt; mens vi kunne stole påmonths å alltid returnere juli, august, september i den rekkefølgen, kan tastene% days_in_summer returnere dem i den rekkefølgen hodet
month_list = nøkler% days_in_summer.; #month_list Er nå ( 'juli', 'september', 'august')!
De tre typer variabler har tre separate navnerom
. Det betyr at $ kuleramme ogabacus er to forskjellige variabler, og $ kuleramme [0] (det første elementet iabacus) er ikke det samme som $ kuleramme {0} (verdien i kuleramme som har nøkkelen 0).
Trinn 5
kommentarer
merke til at i noen av kodeeksempler fra forrige avsnitt, har jeg brukt kode kommentarer. Disse er nyttige for å forklare hva en bestemt del av koden gjør, og avgjørende for noen del av koden du har tenkt å endre, forbedre, reparere, eller bare se på nytt. (Det vil si, kommentarer er avgjørende for all kode.)
Alt i en linje av Perl-kode som følger en # -tegnet er en kommentar. (. Unntatt, selvfølgelig, hvis # -tegnet vises i en streng)
print "Hello world \\ n"; # Det er bedre. # Hele denne linjen er en kommentar.
Trinn 6
Loops
Nesten hver gang du skriver et program, må du bruke en sløyfe
. Loops tillate deg å kjøre et bestemt stykke kode om og om igjen. Dette er en del av et generelt begrep innen programmering heter flyt kontroll
.
Perl har flere forskjellige funksjoner som er nyttige for flytkontroll, den mest grunnleggende av disse er for. Når du bruker for funksjonen, angir du en variabel som skal brukes for sløyfe indeksen
, og en liste med verdier å sløyfe over. Inne et par klammeparenteser, legger du en kode du vil kjøre under loopen:
for $ i (1, 2, 3, 4, 5) {print "$ i \\ n"; }
Denne sløyfen skriver tallene 1 til 5, hver på en egen linje., En hendig snarvei for å definere løkker bruker .. for å angi en spekter
av tall. Kan skrive (1, 2, 3, 4, 5) som (1 .. 5). Du kan også bruke arrays og skalarer i sløyfe-listen. Prøv denne koden og se hva som skjer:
one_to_ten = (1 .. 10); $ Top_limit = 25; for $ i (one_to_ten, 15, 20 .. $ top_limit) {print "$ i \\ n"; }
Den varer i sløyfe liste trenger ikke å være tall; du kan bruke strenger like lett. Hvis hash% month_has inneholder navn på måneder og antall dager i hver måned, kan du bruke tastene virker til å gå gjennom dem.
For $ I (keys% month_has) {print "$ jeg har $ month_has {$ i} dager \\ n. "; } For $ Marx ( 'Groucho', 'Harpo', 'Zeppo', 'Karl') {print "$ marx er min favoritt Marx bror \\ n."; }

Det er det grunnleggende Perl.