Undvika de vanligaste misstagen i Perl

Diverse Jannes Odenberg December 18, 2016 0 0
FONT SIZE:
fontsize_dec
fontsize_inc

 Införandet av en typ av fel, eller två, under loppet av att skriva ett Perl-program är inte ovanligt. Men när du försöker köra ett program med en textinmatnings slip-up run, Perl oftast blir förvirrad och säger så genom att rapportera ett fel. Den naturliga reaktionen för de flesta människor, även de med många års erfarenhet av programmering är att synas orolig eller arg eller båda när ett fel.

 Oroa dig inte. Ta ett djupt andetag. Ta en annan långsamma, djupa andetag. Allvarligt talat, kan du inte gå till roten av problemet om du redan spänd och trakasseras. Oavsett hur många år av ditt program, du alltid hamna hitta några fel i koden som du har skrivit.

 Så, nu när du är lite lugnare, kan du börja uppskatta det faktum att Perl har mer hjälp felmeddelanden än nästan alla andra programmeringsspråk. Meddelandena är inte alltid rätt på pengarna, men de kan komma ganska nära där problemet ligger med minimal sökning på din sida.

 Perl felmeddelanden hinder, men ett fåtal verkligen dyker upp mer än andra på grund av några vanliga felstavningar som alla verkar göra. Följande fel leder från små textinmatning goofs som du enkelt kan undvika.

 Glömmer ett semikolon

 Förmodligen den vanligaste felmeddelandet som du ser när du programmerar i Perl ser ut ungefär så här:

 # Syntax error i närheten av "öppna"
 File "; Linje 10
 # Utförande avbryts på grund av kompileringsfel.

 Du kan titta och titta på linje 10, den ena med det öppna uttalande, och du kommer inte att se något fel med det. Tricket är att granska deklarationen som kommer före det öppna uttalande och se om det slutar med ett semikolon. I detta fall är felet orsakas av en saknad semikolon i slutet av raden 7 i programmet:

 $ UTFIL = ""

 Glömmer ett citat huggande

 Nästa typ av fel kan vara mycket frustrerande om du inte vet en quick fix:

 # Bare ord finns där operatören väntat, nära
 # "Öppnade eller dö" The "
 #
 File "; Linje 10

 Detta fel liknar om du glömmer ett semikolon; I stället är det ett citat huggande som oavsiktligt utelämnats:

 $ UTFIL = ";

 I det här fallet, Perl gör ett bra jobb med att gissa vad som är fel, vilket tyder på att en skenande slagen multi-line string "" på rad 7 är problemet, och det är exakt samma.

 Mata in en krok för mycket eller för lite

 När du öppnar laster och stängnings parentes i ett program, är det lätt att lägga till en extra en slip av en slump. Om så är fallet, kan du få ett meddelande från Perl som läser, ungefär så här:

 # Syntax error nära ') eq "
 File "; Linje 38
 # Syntax error, nära "}"
 File "; Linje 42

 Här Perl kan inte avgöra var felet exakt, men det faktiskt fick det rätt på första gissning: Linje 38 innehåller en extra högerparentes:

 om) eq "")

 Att ha en liten krok i ett Perl program kan orsaka problem svårare att hitta:

 # Det går inte att använda konstant föremål som arg lämnade implicit --->
 # Nära "1}"
 File "; Linje 39
 # Skalär fann där operatörs väntat, nära '$ CharPos "
 File "; Linje 40
 #
 # Syntax error, nära "$ CharPos"
 File "; Linje 40

 Yarp! Allt detta framställdes sedan de senaste konsolerna på linje 38 saknas:

 Om eq ""

 Här är en annan bra lektion i jakt stavfel: Börja där Perl säger att det hittat ett misstag. Om du inte hittar felet genom att starta en rad eller två och se om problemet började tidigare.

 Ett sista ord råd: Förtroende Perl hitta enkla stavfel för dig, och kom ihåg att det ger dig all hjälp den kan, vilket är mer än man kan säga om många programmeringsspråk.

(0)
(0)