Thread Hash in JSON finden (21 answers)
Opened by cbxk1xg at 2013-11-14 15:42

cbxk1xg
 2013-11-14 17:52
#172099 #172099
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Ich habe festgestellt, dass ich jetzt gelegentlich einen schönen Fehler geschmissen bekomme. Dabei bricht gleich das komplette Script ab.

Quote
Not a HASH reference at index.pl line 624.


Das zeigt auf die Zeile mit folgendem Inhalt.

Code (perl): (dl )
my ($jsonHash) = values %{ $perl_data->{query}->{pages} };


Ich vermute, dass das passiert wenn der Wikipedia-Server sich verschluckt und eine leere Antwort zurück schickt. Leider kann ich das Problem nicht immer exakt reproduzieren. Hier noch mal meine Sub im Ganzen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sub GetWikipediaAbstract {
my ($query) = @_;
$query = &EncodeString($query);
my $SearchURL = $WikipediaAPI_URL.$query;

my $ua = LWP::UserAgent->new;
$ua->timeout(1);
$ua->agent('$ScriptUserAgent');
my $response = $ua->get($SearchURL);

        if ($response->is_success) {
        my $content = $response->decoded_content;
        $content =  &EncodeUTF8($content);

        my $json_obj = new JSON;
        my $perl_data = $json_obj->decode($content);

        my ($jsonHash) = values %{ $perl_data->{query}->{pages} };
        my $text = $jsonHash->{extract};

        unless ($text eq "") {return $text}
        }

}

View full thread Hash in JSON finden