Indholdsfortegnelse:
Video: 3000+ Common Spanish Words with Pronunciation 2025
Et typografi eller to under skrivning er et Perl-program ikke ualmindeligt. Men når du forsøger at køre et program, der indeholder en tekstindtastning, bliver Perl normalt forvirret og fortæller dig det ved at rapportere en fejl. Den naturlige reaktion for de fleste mennesker, selv dem med mange års programmeringserfaring, er at blive bekymret eller vred eller begge, når en fejlmeddelelse dukker op.
Undgå panik. Tag en dyb indånding. Tag en anden langsom, dyb indånding. Alvorligt kan du ikke komme til roden af problemet, hvis du er spændt og generet. Uanset hvor mange år du programmerer, du ender med at finde nogle fejl i den kode, du er skrevet.
Så nu, hvor du (forhåbentlig!) Er lidt roligere, kan du begynde at forstå, at Perl har mere nyttige fejlmeddelelser end næsten alle andre programmeringssprog. Meddelelserne er ikke altid rigtige på pengene, men de kan få dig ret tæt på stedet, hvor problemet ligger ved minimal søgning på din side.
Perl har utallige fejlmeddelelser, men et par afgrøder definitivt mere end andre på grund af nogle almindelige typografier, som alle synes at lave. Følgende fejl skyldes mindre tekstindtastninger, som du nemt kan undgå.
Forglemmelse af et semikolon
Den mest almindelige fejlmeddelelse, du ser når programmeringen i Perl ser sådan ud:
# syntaksfejl, nær "åben"
File' counter1. pl '; Linje 10
# Afvikling afbrudt på grund af kompileringsfejl.
Du kan se og se på Linje 10, den med den åbne sætning, og du vil ikke se noget galt med det. Tricket her er at undersøge den erklæring, der kommer før den åbne erklæring og se om den ender med et semikolon. (Perl ved, at en erklæring kun udløber, når den møder et semikolon.) I dette tilfælde skyldes fejlen et manglende semikolon i slutningen af linje 7 i programmet:
$ TheFile = "prøve. txt "
Glemmer et citatmærke
Følgende slags fejlmeddelelse kan være yderst frustrerende, hvis du ikke kender til en hurtig løsning:
# Bare ord fundet, hvor operatøren forventede, nær
#" åben (INFILE, $ TheFile) eller dø "The"
# (Kan være en runde multi-line "streng startende
# linje 7)
File 'counter1. pl '; Linje 10
Denne fejl ligner at glemme et semikolon; I stedet er det et citatmærke, der ved et uheld udelades:
$ TheFile = "sample. txt;
I dette tilfælde gjorde Perl et godt stykke arbejde med at gætte, hvad der er galt, hvilket tyder på, at en runaway multi-line "streng på linje 7 er problemet, som netop er rigtigt.
Indtastning af en parentes for mange eller for få
Når du har masser af åbne og lukkede parenteser i et program, er det nemt at slippe en ekstra i ved et uheld. Hvis det er tilfældet, kan du muligvis se en besked fra Perl, der læser noget som dette:
# syntaksfejl, nær ") eq"
File 'counter1. pl '; Linje 38
# syntaksfejl, nær "}"
File 'counter1. pl '; Linje 42
Her kan Perl ikke bestemme, hvor fejlen er nøjagtigt, men den har faktisk det lige ved det første gæt: Linje 38 indeholder en ekstra ret parentes:
hvis (substr ($ TheLine, $ CharPos, 1)) eq "")
At have en parentes for få i et Perl-program kan forårsage sværere at finde problemer:
# Kan ikke bruge konstant element som venstre arg af implicit ->,
# nær "1}"
File 'counter1. pl '; Linje 39
# Scalar fundet, hvor operatør forventes, i nærheden af "$ CharPos"
File 'counter1. pl '; Linie 40
# (Mangler semikolon på forrige linje?)
# syntaksfejl, nær "$ CharPos"
File 'counter1. pl '; Linje 40
Yarp! Alt dette blev produceret, fordi den sidste parentes på linje 38 mangler:
hvis (substr ($ TheLine, $ CharPos, 1) eq ""
Her er en anden god lektion i jagt ned skrivefejl: Start, hvor Perl siger det fandt en fejl. Hvis du ikke finder fejlen der, skal du gå op på en linje eller to og se om problemet startede tidligere.
Et sidste ord af råd: Tillid Perl for at finde de simple typografier for dig (hvor det kan), og husk at det giver dig al den hjælp det kan, hvilket er mere end du kan sige for mange programmeringssprog.