2015-05-21 3 views
2

Мой код, взятый практически из страницы модуля CPAN:Невозможно признать ошибку синтаксиса

use strict; 
use warnings; 
use LWP::Curl; 
my $lwpcurl = LWP::Curl->new(); 
my $referer = 'http://www.example.com/'; 
my $post_url = 'https://example'; 
my $key='363073020844984X3v2'; 
my $hash='73wKwB802h8y26VrmyGD4TIqXSnsV7u39DDOOCd82578t9c92paeBABnMH0ahzp6lzH'; 
my $action='boot'; # ACTION="info&ipaddr=true&mem=true&hdd=true&bw=true" 
my $hash_form = { 
    'KEY' => $key, 
    'HASH' => $hash, 
    'action' => $action, 
} 
my $content = $lwpcurl->post($post_url, $hash_form, $referer); 
print $content; 

Я получаю странную ошибку синтаксиса:

syntax error at soluscontrol.pl line 16, near "my " 
Global symbol "$content" requires explicit package name at /root/bash-advanced-scripts/soluscontrol.pl line 16. 
Global symbol "$hash_form" requires explicit package name at /root/bash-advanced-scripts/soluscontrol.pl line 16. 
Global symbol "$content" requires explicit package name at /root/bash-advanced-scripts/soluscontrol.pl line 17. 
Execution of /root/bash-advanced-scripts/soluscontrol.pl aborted due to compilation errors. 

Я не могу понять, где ошибка исходит.

+3

Вы пропускаете ';' в конце хэш declaration.'my $ hash_form = { 'KEY' => $ ключ, 'HASH' => $ хэш, 'действие' => $ действия, } ' – Jens

+3

Подсказка: Если Perl жалуется то, что выглядит правильно, посмотрите на линию над ней. – shawnhcorey

ответ

5

В заявлении, начинающемся в строке 10, отсутствует его конечная точка с запятой.

my $hash_form = { 
    'KEY' => $key, 
    'HASH' => $hash, 
    'action' => $action, 
} 

должен быть

my $hash_form = { 
    'KEY' => $key, 
    'HASH' => $hash, 
    'action' => $action, 
}; 
Смежные вопросы