返回空哈希 - Perl

时间:2014-11-12 08:26:50

标签: perl

您好我试图通过检查某些网址是否有效来创建一个json(对于404错误),然后我使用这些网址的ID并将其传递给哈希,然后我编码并将其写入json文件。但由于某种原因,它不断返回空哈希{}

这是我的代码

use strict;
use warnings;

use LWP::UserAgent;
use JSON;
use feature qw(say);

my $json = JSON->new();

my $count = 400;
my $url = 'http://domain.com/media/';

my %cards = ();

for (my $id = 0; $id <= $count; $id++) {
       my $lwp = LWP::UserAgent->new();
       my $response = $lwp->head($url . $id . '.swf');
        if ($response->code != 404) {
             $cards{card_id} = $id;
             $cards{coins} = 10;
        }
}

my $data = $json->pretty->encode(\%cards);

open FILEHANDLE, '>>', 'cards.json';
say FILEHANDLE $data;
close FILEHANDLE;

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

  1. 想想,你所有的迭代都在&#34; for&#34;以404结尾。(手动重新检查URL。)
  2. 另请注意,您将获得哈希中唯一的最后一个非404项。 (这是你期望的吗?)

答案 1 :(得分:0)

我想你想要这个

         $cards{card_id} = $id;
         $cards{coins} = 10;

更像是这样的

         $cards{$id} = 10;