Michael Schröpl: Suche verzweifelt eine Subroutine zum prüfen ob eine URL existiert oder nicht!

Beitrag lesen

im archiv stand nur sowas von if(head($file)) { }
mit irgendnochwas drüber das ich noch nie gesehen hab...
kann mir das jemand erklären??

Aus der ActivePerl-Dokumentation zum Modul "LWP::Simple":

head($url)
Get document headers. Returns the following 5 values if successful: ($content_type, $document_length, $modified_time, $expires, $server)
Returns an empty list if it fails. In scalar context returns TRUE if successful.

Und wegen dem letzten Satz kann man es in einem "if" verwenden. (Das ist halt Perl: Eine leere Liste ist in diesem Kontext eben "false".)

Über $document_length und $modified_time kannst Du immerhin einiges über den Inhalt der URL herausfinden, ohne ihn komplett zu übertragen. Ein Browser findet in diesem Aufruf alles, was er braucht, um einen Cache zu betreiben, nämlich die Angabe, ob er den eigentlichen Inhalt des Dokuments holen muß oder ob seine lokale Kopie auch ausreicht.

Auf dieser Funktion basiert übrigens auch das Skript, die hinter http://www.teamone.de/selfaktuell/serverid.htm steckt: Es gibt einfach das letzte Element des Ergebnisses von head() aus.