Acasă Finanțe personale Evitând percepția obișnuită în Perl

Evitând percepția obișnuită în Perl

Cuprins:

Video: To Walk Blind Is to Really See 2024

Video: To Walk Blind Is to Really See 2024
Anonim

Introducerea unei clauze sau a două în timpul procesului de scriere a unui program Perl nu este neobișnuită. Dar când încercați să rulați un program care conține o alunecare de introducere de text, Perl este de obicei confuz și vă spune acest lucru prin raportarea unei erori. Reacția naturală pentru majoritatea oamenilor, chiar și pentru cei cu ani de experiență de programare, este să vă îngrijorați sau furioși sau ambii atunci când apare un mesaj de eroare.

Nu intră în panică. Respiră adânc. Luați o altă respirație lentă și adâncă. Serios, nu poți ajunge la rădăcina problemei dacă ești tare și deranjat. Indiferent de câți ani ai programat, întotdeauna ai ajuns să găsești niște erori în codul pe care l-ai scris.

Perl are nenumărate mesaje de eroare, dar unele se întâlnesc cu siguranță mai mult decât altele, datorită unor greșeli comune pe care toată lumea pare să le facă. Următoarele erori sunt rezultatul unor modificări minore care pot fi evitate cu ușurință.

Pierderea punct și virgulă

Probabil cel mai obișnuit mesaj de eroare pe care îl vedeți atunci când programați în Perl arată astfel:

# eroare de sintaxă, aproape de "deschis"

File1 counter1. pl "; Linia 10

# Execuția a fost anulată din cauza erorilor de compilare.

Poți să privești și să te uiți la linia 10, cea cu declarația deschisă, și nu vei vedea nimic rău cu ea. Trucul aici este să examinăm declarația care vine

înainte de declarația deschisă și să vedem dacă se termină cu punct și virgulă. (Perl știe că o declarație se termină numai atunci când se întâlnește cu punct și virgulă.) În acest caz, eroarea este cauzată de o punct și virgulă lipsă la sfârșitul liniei 7 a programului:

$ TheFile = "eșantion. txt "

Uitărea unui ghilimele

Următorul tip de mesaj de eroare poate fi extrem de frustrant dacă nu știți o remediere rapidă:

# # deschideți (INFILE, $ TheFile) sau moriți "The"

# (poate fi un șir rupt în mai multe rânduri începând cu

# line 7)

File 'counter1. pl "; Linia 10

Această eroare este similară cu uitarea unui punct și virgulă; în schimb, este un citație care a fost omorât din greșeală:

$ TheFile = "sample. txt;

În acest caz, Perl a făcut o treabă bună de a ghici ce este în neregulă, sugerând că o șir de rânduri cu mai multe linii "pe linia 7 este problema, ceea ce este tocmai corect.

Introducerea unei paranteze prea mare sau prea mică

Când aveți o grămadă de paranteze de deschidere și închidere într-un program, este ușor să alunecați unul din altele accidental. Dacă este cazul, este posibil să vedeți un mesaj de la Perl care citește ceva de genul:

# eroare de sintaxă, lângă ") eq"

File 'counter1. pl "; Linia 38

eroare de sintaxă #, aproape de "}"

fișier "counter1. pl "; Linia 42

Aici Perl nu poate determina unde este exact eroarea, dar a reusit sa gaseasca prima idee: Linia 38 contine o paranteza suplimentara dreapta:

daca (substr ($ TheLine, $ CharPos, 1)) eq "")

Având o paranteză prea mică într-un program Perl poate provoca probleme mai greu de găsit:

# Nu se poate utiliza elementul constant ca stânga arg implicit ->, lângă "1}"

Fișierul "contra1. pl "; Linia 39

# Scalar găsit în cazul în care operator de așteptat, lângă "$ CharPos"

File 'counter1. pl "; Linia 40

# (punct și virgulă lipsește pe linia anterioară?)

# eroare de sintaxă, lângă "$ CharPos"

Fișierul "counter1. pl "; Linia 40

Yarp! Toate acestea au fost produse deoarece ultima paranteză de pe linia 38 lipsește:

dacă (substr ($ TheLine, $ CharPos, 1) eq ""

Iată o altă lecție bună în urmărirea erorilor de scriere: Dacă nu găsiți eroarea acolo, ridicați-vă o linie sau două și vedeți dacă problema a început mai devreme.

Un sfat final de sfat: Încredereți-l pe Perl să găsească greșitul simplu pentru dvs. poate) și amintiți-vă că vă oferă tot ajutorul, ceea ce este mai mult decât puteți spune pentru multe limbi de programare.

Evitând percepția obișnuită în Perl

Alegerea editorilor

Cum să faci aritmetică de bază în R-dummies

Cum să faci aritmetică de bază în R-dummies

De operatori aritmetici, astfel încât să puteți utiliza R ca un calculator fantezie dacă apare necesitatea. Cum se utilizează operatorii de bază în R Majoritatea operatorilor aritmetici de bază sunt foarte familiarizați cu programatorii (și cu oricine altcineva care a studiat matematica în școală). Descrierea operatorului ...

Cum se extrage un subset al unui vector în R - dummies

Cum se extrage un subset al unui vector în R - dummies

Utilizați aceleași reguli de indexare pentru vectorii de caractere pe care îl utilizați pentru vectorii numerici (sau pentru vectori de orice tip). Procesul de trimitere la un subset al unui vector prin indexarea elementelor sale se numește și subsetare. Cu alte cuvinte, subsetarea este procesul de extragere a unui subset al unui vector. Pentru a ilustra ...

Cum se face matricea aritmetică în R-dummies

Cum se face matricea aritmetică în R-dummies

ÎN afară de operatorii aritmetici clasici, R conține un set mare de operatori și funcții pentru a efectua un set larg de operații matrice. Multe dintre aceste operațiuni sunt folosite în matematică avansată, astfel încât este posibil să nu aveți nevoie de ele. Unele dintre ele pot veni destul de la îndemână, deși, dacă aveți nevoie să răsturnați datele sau ...

Alegerea editorilor

Top 10 Dificultăți în practica de înțelegere și cum să le depășești - manechine

Top 10 Dificultăți în practica de înțelegere și cum să le depășești - manechine

De practici, mindfulness nevoie de timp pentru a învăța, a înțelege și a încorpora într-o rutină zilnică. Ca și în orice altceva, va avea parte de dificultăți, dar toate pot fi depășite. Găsirea timpului pentru o practică formală de conștientizare Unul dintre cele mai dificile lucruri despre practica de conștientizare este găsirea timpului ...

Depășirea distanței de comunicare cu copiii dvs. autism

Depășirea distanței de comunicare cu copiii dvs. autism

Deficitele de limbă și de comunicare sunt de obicei cele mai grave și aspecte stresante ale autismului. Comunicarea cu succes este o provocare majoră cu care se confruntă multe persoane cu autism. Capacitatea lor de a comunica dramatic afectează cât de bine interacționează social într-o lume non-autistă. Mulți oameni cu autism nu au capacitatea de a cere chiar și un pahar de apă sau ...

Benzodiazepinele și tratamentul tulburărilor bipolare - manechine

Benzodiazepinele și tratamentul tulburărilor bipolare - manechine

Cele mai frecvent utilizate medicamente pur antianchetă utilizate în tratamentul tulburarea bipolară sunt benzodiazepinele (cunoscute și sub numele de anxiolitice sau tranchilizante sau benzos pe scurt). Aceste medicamente încetinesc întregul sistem nervos, reducând astfel agitația și nivelurile de anxietate, ambele putând fi probleme în tulburarea bipolară. Benzoazele par să afecteze un creier ...

Alegerea editorilor

Navigați în Adobe Acrobat Creative Suite 5

Navigați în Adobe Acrobat Creative Suite 5

Acrobat CS5 oferă o varietate de panouri care sunt utile atunci când navigați prin documente PDF. Panourile de navigare sunt afișate în partea stângă a ferestrei Document ca mici pictograme. Faceți clic pe o pictogramă pentru a face panoul său vizibil. De exemplu, dați clic pe pictograma Pagini pentru a afișa reprezentările de dimensiuni miniatură pentru fiecare pagină. În paginile ...

Restricționa Cine poate edita sau imprima documente PDF - dummies

Restricționa Cine poate edita sau imprima documente PDF - dummies

Adobe Acrobat Creative Suite 5 cu capacitatea de a restricționa cine poate edita sau imprima documentele PDF pe care le distribuiți. Urmați acești pași:

Ecran Prindeți o secțiune a unui fișier PDF - dummies

Ecran Prindeți o secțiune a unui fișier PDF - dummies

Puteți utiliza instrumentul Snapshot în Adobe Acrobat CS5 pentru a selecta textul și imaginile și a crea o imagine a unei anumite zone dintr-un fișier PDF. Rezultatul este denumit în mod obișnuit ca o apucare pe ecran a unei secțiuni dintr-un fișier PDF. Rezultatul este o imagine și textul dvs. nu este ...