Perl编译时错误,未初始化的值

时间:2014-05-18 11:10:05

标签: perl compiler-errors initialization

我遇到过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();

1 个答案:

答案 0 :(得分:0)

我认为此表达式$data -> {listinginfo}{$infoid}{converted_price};未初始化。尝试 my $price = defined $data -> {listinginfo}{$infoid}{converted_price} ?$data -> {listinginfo}{$infoid}{converted_price} : 0 ; 这是if .. then .. else。

的缩写形式