2014-05-18 9 views
0

У меня возникла проблема с perl. Это моя программа:Ошибка времени компиляции Perl, неинициализированное значение

my $data = decode_json $json; 
my @infoids = keys %{$data -> {listinginfo}}; 

foreach my $infoid (@infoids) { 
my $price = $data -> {listinginfo}{$infoid}{converted_price}; 
print "$price" . "\n"; #30 
} 

Я использую строга и предупреждение, я получаю сообщение об ошибке: Использование неинициализированного значения $ цены в строке в C: \ Users \ Себ \ perl.pl линия 30. Любой помощь, как почему это происходит, было бы действительно оценено. Заранее спасибо.

Себ

EDIT: Im используя этот код для входа на сайт, я думаю, что это может быть неисправен. Он не возвращает никаких ошибок, но не регистрирует меня успешно.

my $login = "https://steamcommunity.com/login/home/?goto=market%2F"; 
my $username = "USR"; 
my $password = "PASS"; 
my $mech = WWW::Mechanize->new(); 
$mech->cookie_jar(HTTP::Cookies->new()); 
$mech->get($login); 
$mech->form_name('loginForm'); 
$mech->field(login => $username); 
$mech->field(passwd => $password); 
$mech->click(); 

ответ

0

Я думаю, что это выражение $data -> {listinginfo}{$infoid}{converted_price}; не инициализировано. Попробуйте my $price = defined $data -> {listinginfo}{$infoid}{converted_price} ?$data -> {listinginfo}{$infoid}{converted_price} : 0 ; Это короткая форма if .. then .. else.

+0

Спасибо за ответ, когда я это сделаю, я получаю только много 0. У вас есть идеи, почему это так? – user3648548

+0

@ user3648548 Можете ли вы показать мне json? – Jens

+0

Я думаю, ive нашел проблему, добавив в правку – user3648548

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