我遇到过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 \ Seb \ perl.pl第30行的字符串中使用未初始化的值$ price。任何关于为什么会发生这种情况的帮助将非常感激。提前谢谢。
的Seb
编辑: 我使用此代码登录网站,我认为这可能是错误的。它没有返回任何错误,但没有成功登录。
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 :(得分:0)
我认为此表达式$data -> {listinginfo}{$infoid}{converted_price};
未初始化。尝试
my $price = defined $data -> {listinginfo}{$infoid}{converted_price} ?$data -> {listinginfo}{$infoid}{converted_price} : 0 ;
这是if .. then .. else。