Halihallo Beat
Mir sind da aber noch gleich andere Gedanken in den Sinn gekommen.
Wie gehe ich damit um, wenn just in dieser Prozedur keine Verbindung zustandekomt
und das script deshalb hängenbleibt (Timeout) ?
Tja, dann ist dumm gelaufen ;-)
Der Timeout ist AFAIK per default auf 30 gesetzt. Dein Script würde
also 30 Sekunden "hängen" und dir undef (undefined) als Content
(bei get) zurückgeben.
if defined($extbild){
Warum? - Du weisst das erst nachdem du die Ressource angefordert
hast...
use LWP::Simple ;
get($extbild) or die 'Keine Verbindung zu externem Server' ;
... nämlich hier.
# was geschieht mit dem Script, wenn keine Verbindung zustande kommt?
In deinem Code? - Es stirbt (die()) mit der von dir angegebenen
Fehlermeldung.
# bzw. wie kontrolliert man die Bedingungen für den Begriff Verbindung?
Das ist eine Frage die sich so nicht einfach beantworten lässt.
Ich schätze du meinst nicht nur Verbindung, sondern auch das
Vorhandensein der Ressource?
Also: kurze "Definition":
- Verbindung zum Server kann hergestellt werden
- Server schliesst die Verbindung *nicht* gleich nach Empfang des
Requests.
- Server antwortet in einer richtigen HTTP-Response
- HTTP-Response enthält Status 200 oder 3XX (Redirect)
Grundsätzlich gilt es bei LWP:
if (defined($res) && $res->is_success()) {
# scheint geklappt zu haben.
}
Ich denke meine Absicht wird nicht zu mehr Effizienz führen.
Das glaube ich auch nicht. Besonders nicht, wenn du jedesmal wenn die
Hauptdatei angezeigt wird, 100 Bilder serverseitig einliest[1]... Das
würde wenn, dann mit einem cron-Job erledigt.
[1] Das wäre Overhead non plus ultra...
Viele Grüsse
Philipp