QuoteDie Wartezeit f�r die Verbindung ist abgelaufen at /usr/share/perl5/LWP/Protocol/http.pm line 51;
1
2
3
4
5
6
7
8
9
10
11
12
my $ua = Flickr::Upload->new({'key' => $key, 'secret' => $secret});
$ua->agent( "flickr_folder_upload" );
$ua->env_proxy();
my $photoid = $ua->upload(
'photo' => $processing_folder_image_list_paths[$i],
'auth_token' => $auth_token,
'is_public' => 1,
'is_friend' => 1,
'is_family' => 1,
'async' => 0,
);
Flickr::APICode (perl): (dl )1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20sub new { my $class = shift; my $options = shift; my $self = new LWP::UserAgent; $self->{api_key} = $options->{key}; $self->{api_secret} = $options->{secret}; $self->{rest_uri} = $options->{rest_uri} || 'http://api.flickr.com/services/rest/'; $self->{auth_uri} = $options->{auth_uri} || 'http://api.flickr.com/services/auth/'; eval { require Compress::Zlib; $self->default_header('Accept-Encoding' => 'gzip'); }; warn "You must pass an API key to the constructor" unless defined $self->{api_key}; bless $self, $class; return $self; }
Quotespezifizieren. eval um $photoid = $ua->upload()?... Teile des Codes in einen eval-Block packen, um das "die..." des Socket-Erstellen abzufangen und vielleicht die Meldung nur als Warnung rauszugeben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
#! /usr/bin/perl use strict; use warnings; sub selfkill { # Zufall bestimmen; mal stirbt das Skript, mal nicht int(rand(2)) == int(rand(2)) ? die "Nu ist Schluss...\n" : return 0; } # Sollte selfkill ein die() ausrufen, wird das vom eval # aufgefangen; und das Ergebnis sollte direkt kontrolliert werden # die 1 ist wichtig; sollte selfkill nicht sterben, dann liefert # der Code-Block dank der 1 ein wahres Ergebnis und das # "or warn..." wird nicht ausgeführt eval { selfkill(); 1; } or warn "selfkill() hat zugeschlagen: $@\n"; # Ausgaben, um zu zeigen, dass wir noch leben print "ich lebe noch....\n"; print "bis jetzt...\n"; # "normaler" Aufruf, der uns beendet selfkill();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
eval {
$photoid = $ua->upload(
'photo' => $processing_folder_image_list_paths[$i],
'auth_token' => $auth_token,
'is_public' => 1,
'is_friend' => 1,
'is_family' => 1,
'async' => 0,
);
} or $@ = "timeout by uploading $processing_folder_image_list_paths[$i]";
if ($@ eq '') {
$photoid_error = 0;
} else {
$photoid_error = 1;
push(@error_list, $@)};