Calocybe: Warum geht das so nicht?

Beitrag lesen

Moin!

also wenn man das Script von der Kommandozeile ausführt, liest es alle Daten ein und schreibt sie nach STDOUT. Warum geht das nicht wenn ich das über einen IIS ausführe?

Kommt mir doch so bekannt vor... Schau mal nach <../../sfarchiv/1999_2/t03170.htm>, aehnlich Probleme hatte ich auch schon, jedoch nicht mit dem glob(), sondern mit command substitution. Ich denke, bei Dir ist die Ursache dieselbe.

Dein glob() Aufruf veranlasst Perl, eine Shell zu starten (d.h. CMD.EXE unter WinNT), welche dann das eigentliche Dateinamenzusammensuchen macht (wobei mich das ein bisschen wundert, denn CMD macht die Aufloesung des * normalerweise gar nicht, aber scheinbar geht's trotzdem). Jedenfalls schlaegt da dieses Problem mit der I/O-Redirection wohl zu.

Aber ich rate von glob() sowieso ab. Da geht naemlich auf dem Webserver jedesmal kurz ein Fenster auf, wenn das Script ueber CGI ausgefuehrt wird, was sehr lustig aussieht. Naja, silly Microsoft, was soll man da noch sagen...
Nimm besser die Funktionen opendir(), readdir() und closedir() (see perlfunc). Dann musst Du zwar noch selber filtern, falls Du nicht alle Dateien haben willst, aber es funktioniert dafuer plattformuebergreifend ohne Probleme.

Was den Content-type angeht, "text/html" ist richtig.

So long