2011-01-28 19 views
6

Ben perl için yeni ve etrafta dolaşıyorum. Bu kodu çevrimiçi buldum. İşte kod snippet'idir:bareword, operatörün beklediği yerde bulundu

82 process_input(q,[]). 
83 process_input(n,Task) :- toptask(Task), set_new_threshold. 
84 process_input(s,Task) :- suggest_task(T), 
85   apply(addtoagenda,T),toptask(Task). 
86 process_input(x,Task) :- print('not yet implemented'),nl,toptask(Task). 
87 process_input(i,Task) :- user_task,toptask(Task). 

Ve bu hatayı alıyorum: Bareword yere yakın beklenen operatör "process_input (n Görev" satırı 83. kaçak bir çok hatlı ,, dize başlangıç ​​olabilirdi bulundu on line 82.

+7

Perl'in etrafta dolaştığından emin misin? –

+7

Anlaştık, daha çok prolog gibi görünüyor. – Ether

+4

AFAIK, hem prolog hem de perl, uzantıları olarak ".pl" kullanırlar, bu muhtemelen karışıklığın kaynağıdır. –

cevap

9

Kodunuzda bir sözdizimi hatası nedeniyle bir 'Bareword' hatası oluşur. 'Kaçak çok satırlı' genellikle hatanın başlangıcının olduğu noktayı belirler ve genellikle bir satırın tamamlanmadığı anlamına gelir. genellikle eşleşmeyen parantez veya alıntı işaretleri nedeniyle.

Çeşitli SO'lar tarafından belirtildiği gibi, t şapka Perl gibi görünmüyor! Perl yorumlayıcısı bir sözdizimi hatasıyla boğuşuyor çünkü o belirli dili bilmiyor!