Rumah Kewangan Peribadi Menghindari Pengawalan Biasa dalam Perl - dummies

Menghindari Pengawalan Biasa dalam Perl - dummies

Isi kandungan:

Video: Words at War: Combined Operations / They Call It Pacific / The Last Days of Sevastopol 2024

Video: Words at War: Combined Operations / They Call It Pacific / The Last Days of Sevastopol 2024
Anonim

Memasuki kesipo atau dua ketika menulis program Perl tidak biasa. Tetapi apabila anda cuba menjalankan program yang mengandungi slip kemasukan teks, Perl biasanya menjadi keliru dan memberitahu anda dengan demikian melaporkan ralat. Reaksi semulajadi untuk kebanyakan orang, walaupun mereka yang mempunyai pengalaman pengaturcaraan bertahun-tahun, adalah untuk merasa bimbang atau marah atau keduanya apabila mesej ralat muncul.

Jangan panik. Ambillah nafas panjang. Ambil satu lagi nafas yang perlahan. Serius, anda tidak boleh mendapatkan akar masalah jika anda semua tegang dan terganggu. Tidak kira berapa tahun program anda, anda selalu mencari beberapa kesilapan dalam kod yang anda tulis.

Jadi, sekarang bahawa anda (mudah-mudahan!) Sedikit lebih tenang, anda boleh mula menghargai fakta bahawa Perl mempunyai mesej ralat yang lebih berguna daripada hampir semua bahasa pengaturcaraan lain. Mesej-mesej itu tidak selalu tepat pada wang, tetapi mereka boleh membuat anda cukup dekat dengan tempat di mana masalahnya terletak dengan pencarian yang minima di pihak anda.

Perl mempunyai banyak mesej ralat, tetapi beberapa yang pasti menghasilkan lebih banyak daripada yang lain kerana beberapa kesilapan biasa yang semua orang nampak. Kesilapan berikut adalah hasil daripada kiriman teks masuk kecil yang anda boleh dengan mudah dielakkan.

Lupa huruf semikolon

Mungkin mesej ralat paling biasa yang anda lihat apabila pengaturcaraan dalam Perl kelihatan seperti ini:

# kesalahan sintaks, berhampiran "terbuka"

Fail 'counter1. pl '; Talian 10

# Pelaksanaan digugurkan kerana ralat kompilasi.

Anda boleh melihat dan melihat Line 10, yang mempunyai pernyataan terbuka, dan anda tidak akan melihat apa-apa yang salah dengannya. Silap mata di sini adalah untuk memeriksa kenyataan yang datang sebelum pernyataan terbuka dan melihat sama ada ia berakhir dengan titik koma. (Perl tahu bahawa pernyataan berakhir hanya apabila ia menemui tanda titik koma.) Dalam kes ini, ralat disebabkan oleh titik koma yang hilang pada akhir Talian 7 program:

$ TheFile = "sampel.

Melupakan tanda petikan

Mesej ralat berikut boleh menjadi sangat mengecewakan jika anda tidak tahu tentang penyelesaian yang pantas:

# Kata yang ditemui di mana operator dijangka, berhampiran

# " buka (INFILE, $ TheFile) atau mati "The"

# (Boleh menjadi rentetan berbilang baris "bermula pada

# line 7)

Fail 'counter1. pl '; Baris 10

Kesilapan ini sama dengan melupakan titik koma bertitik; sebaliknya, itu tanda petikan yang tidak sengaja ditinggalkan:

$ TheFile = "sampel. txt;

Dalam hal ini, Perl melakukan tugas yang baik untuk meneka apa yang salah, menunjukkan bahawa string multi-line yang melarikan diri pada Jalur 7 adalah masalah, yang tepat.

Memasuki satu kurungan terlalu banyak atau terlalu sedikit

Apabila anda mempunyai banyak membuka dan menutup tanda kurung dalam suatu program, mudah untuk menyelinap secara tambahan secara tidak sengaja. Jika itu berlaku, anda mungkin melihat mesej dari Perl yang berbunyi seperti ini:

# kesalahan sintaks, berhampiran ") eq"

Fail 'counter1. pl '; Baris 38

# ralat sintaks, berhampiran "}"

Fail 'counter1. pl '; Line 42

Di sini, Perl tidak dapat menentukan di mana kesilapan itu betul-betul, tetapi ia benar-benar mendapat penanda yang tepat: Talian 38 mengandungi kurungan kanan tambahan:

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

Mempunyai satu kurungan terlalu sedikit dalam program Perl boleh menyebabkan masalah yang lebih sukar:

# Tidak dapat menggunakan item yang tetap sebagai argumen kiri tersirat ->,

# berhampiran "1}"

Fail 'counter1. pl '; Baris 39

# Skalar dijumpai di mana operator dijangka, berhampiran "$ CharPos"

Fail 'counter1. pl '; Baris 40

# (Tanda titik tidak hilang pada baris sebelumnya?)

# ralat sintaks, berhampiran "$ CharPos"

Fail 'counter1. pl '; Talian 40

Yarp! Semua ini dihasilkan kerana kurungan terakhir pada Baris 38 hilang:

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

Berikut adalah satu lagi pelajaran yang baik dalam memburu kesilapan menaip: ia mendapati ralat.Jika anda tidak menemui ralat di sana, naik satu atau dua baris dan lihat jika masalah bermula lebih awal.

Kata kunci nasihat akhir: Percayakan Perl untuk mencari kesilapan mudah untuk anda (di mana ia boleh), dan ingat bahawa ia memberi anda semua bantuan yang boleh, yang lebih daripada yang anda katakan untuk banyak bahasa pengaturcaraan.

Menghindari Pengawalan Biasa dalam Perl - dummies

Pilihan Editor

Cara Konfigurasi dan Pemantauan IS-IS pada Alat Junos - dummies

Cara Konfigurasi dan Pemantauan IS-IS pada Alat Junos - dummies

IS-IS protokol penghalaan gerbang dalaman pautan-negeri. Seperti OSPF, IS-IS mengendalikan algoritma pertama yang terpendam Dijkstra (SPF) untuk membuat pangkalan data topologi rangkaian dan, dari pangkalan data itu, untuk menentukan jalan terbaik (iaitu, terpendek) ke destinasi. Paket-paket yang IS-IS routers menghantar kepada satu sama lain menggambarkan topologi rangkaian adalah ...

Bagaimana Konfigurasi dan Memantau OSPF pada Junos Router - dummies

Bagaimana Konfigurasi dan Memantau OSPF pada Junos Router - dummies

OSPF adalah ciri kaya, protokol multi-topologi yang memerlukan sedikit usaha untuk menubuhkan keperluan khusus rangkaian anda. Tetapi, mengkonfigurasi dan mengawasi OSPF pada router Junos OS adalah mudah dan mudah. Pertama, anda mesti menentukan kawasan OSPF yang penghubung akan disambungkan, dan kemudian anda mesti mendayakan OSPF pada antara muka ...

Cara Konfigurasi Banner Masuk pada Alat Junos - dummies

Cara Konfigurasi Banner Masuk pada Alat Junos - dummies

Ketika anda masuk ke OS Junos peranti, anda segera dimasukkan ke dalam Command Line Interface (CLI) dan boleh mula berfungsi. Ganjaran menunjukkan nama pengguna yang digunakan untuk log masuk dan nama peranti: user @ junos-device> Oleh kerana peranti dikongsi pada rangkaian, anda mungkin mahu menghantar mesej kepada ...

Pilihan Editor

Rugby utama - dummies

Rugby utama - dummies

Untuk pemain ragbi atau penonton kali pertama, sukan ini mungkin kelihatan koleksi yang tidak dapat dielakkan pergerakan dan perlanggaran seram. Pada hakikatnya, rugby sangat teknikal dan teratur dengan undang-undang khusus yang mengawal semua aspek permainan. Untuk mendapatkan anda di landasan yang betul awal, berikut adalah empat bahagian yang paling penting ...

Rugby Positions dan Scoring - dummies

Rugby Positions dan Scoring - dummies

Seperti kebanyakan sukan yang tidak berasal dari Amerika Utara, permainan ragbi boleh sukar untuk difahami pada pandangan pertama kerana sejumlah besar pemain yang terlibat, panggilan rawak yang kelihatan rawak, dan pelbagai strategi yang digunakan oleh pasukan yang berlainan untuk menjaringkan mata dan mendapatkan kemenangan. Bahagian berikut ...

Power Boating For Dummies Cheat Sheet - dummies

Power Boating For Dummies Cheat Sheet - dummies

Boating power adalah hobi yang menyeronokkan dan santai selagi bot anda selamat dan sedia untuk dilancarkan. Pemeriksaan mudah dapat membantu memastikan kedua-duanya. Sebagai salah satu kraf yang lebih kuat di atas air, anda perlu tahu kapan untuk memberi laluan dan apabila anda berhak untuk berdiri di atas jalan ...

Pilihan Editor

Cara Snap Apps ke Sisi Skrin di Xbox One - dummies

Cara Snap Apps ke Sisi Skrin di Xbox One - dummies

Xbox One membolehkan anda menjalankan permainan dan aplikasi pada masa yang sama. Sebagai contoh, anda boleh memainkan permainan, mematikan soundtracknya dan mendengar muzik anda sendiri semasa anda bermain, dengan aplikasi Xbox Music. Atau, anda boleh merakam program TV kegemaran anda dan memerhatikan permainan semasa ...