2014-02-05 3 views
1

Я новичок в Perl, и компилятор дает мне синтаксическую ошибку, когда я пытаюсь использовать хэш. Здесь проблема:Ошибка синтаксиса Perl с хэшами

while (<>){ 
    @words_in_line = /[a-z](?:[a-z']*[a-z])?/ig; 
    foreach $word (@words_in_line){ 
      %wordcount{$word}++; 
    } 
} 

и ошибка, я получаю

syntax error at ./wordfreq.pl line 11, near "%wordcount{" 
syntax error at ./wordfreq.pl line 11, near "++;" 
syntax error at ./wordfreq.pl line 13, near "}" 
Execution of ./wordfreq.pl aborted due to compilation errors. 
+2

Я думаю, что вы хотите '$ WordCount {$ слово}' (это синтаксис при индексации хэш). – TypeIA

ответ

7

Чтобы получить доступ к хэш-значения, используйте скалярный сигилу $. Изменение:

 %wordcount{$word}++; 

к:

 $wordcount{$word}++; 

perldoc perldata

+1

Спасибо инструментарий! это сработало! : D – PresidentNick

Смежные вопросы