Kess: Nt begreiflich machen, daß ein Perl-Schript ausgeführt werden soll

Hallo liebe Forumer.

Perl ist neu für mich. Nach dem Motto 'learning by doing' habe ich Perl 5 für NT installiert, den Pfad brav in die Umgebungsvariable eingetragen (wird dennoch ignoriert, hä ?) und Matt's wwwboard geladen und die allgemeinen Variablen angepaßt. Zusätzlich habe ich die Extension .pl in der Registriy mit Perl.exe (kompletter Pfad) verknüpft.
Natürlich funktioniert der Test nicht. :-(

Der Aufruf im Dos-Fenster funzt wie gewünscht.
Der Aufruf per Doppelklick oder unter 'ausführen' läuft nicht mehr.
Der Aufruf über einen Server (Testserver ist local WebSite 1.1) liefert den klassischen Error 500.
Das Log-File spuckt nur aus, daß das Outputfile nicht gefunden wurde.Für mich sieht es so aus, als würde das Script gar nicht ausgeführt.
Zur Info: WebSite benuzt die Shell, die unter Windows jeweils der Extension zugeordnet ist. ie also muß ich Perl in der Registry eintragen, damit .pl korrekt mit dem Interpreter assoziert wird ?

Vielleicht gibt es auch irgendwo Anleitungen, Foren, Newsgroups, etc. die das Thema 'Installation von Perl unter NT' behandeln. Ich habe haufenweise Material zu Perl selbst gefunden. Auch die beiligende Doku ist hier sehr ausführlich. Doch die Installation wird mit einer halben Bildschirmseite abgehandelt. :-(

Ich bin für jede Hilfe bankbar
Kess

  1. Hallo,

    nach eingabe eines pfades ist es unter NT leider notwendig neu zu booten.

    Ich kenn diesen server leider nicht, weiß daher auch nicht ob er den Pfad zu Perl braucht (unter Unix normalerweisse #!usr/bin/perl) bei der wäre das normal: #!c:/programme/perl/bin/perl.exe

    hast du im Perlprogramm alle Pfade Unix like angegeben also mit Slash (/) statt backslash ()?`

    bau dir ein einfaches programm das einfach nur eine zeile zurückschickt. rufe das über den Browser auf. Wenn das funktioniert bist du schon einen schritt weiter.

    Skripte die für Unix Geschrieben wurden sind nicht immer ohne weiters unter NT geeignet. Matts wwwboard zb. verwendet ein programm namens date. Das hast du zwar unter Windows auch, aber das Win date wartet auf eine eingabe eines neues datums.
    Du solltest vielleicht vorerst mal andere plattformunabhängige skripte versuchen. (formmail ohne sendmail geht natürlich auch nicht :-)

    Vielleicht hilfts

    ciao
    Ludwig

    1. Hallo Ludwig,

      danke erst mal.

      nach eingabe eines pfades ist es unter NT leider notwendig neu zu booten.

      :-) Jepp. Habe ich, hilft nichts.

      Ich kenn diesen server leider nicht, weiß daher auch nicht ob er den Pfad zu Perl braucht (unter Unix normalerweisse #!usr/bin/perl) bei der wäre das normal: #!c:/programme/perl/bin/perl.exe

      Irgendwo habe ich gelesen, daß Win das ignoriert. Wie auch immer, geholfen hat es nicht.

      hast du im Perlprogramm alle Pfade Unix like angegeben also mit Slash (/) statt backslash ()?`

      Nein. Die wurden logischerweise angepaßt zu backslash, wie in den FAQ zu dem Sript angegenen: http://www.worldwidemart.com/scripts/faq/wwwboard/q4.shtml

      Wie gesagt, In der Dos-Box aufgerufen läuft es. Wo ist der Unterschied zwischen Dos-Box und Server ?

      Skripte die für Unix Geschrieben wurden sind nicht immer ohne weiters unter NT geeignet. Matts wwwboard zb. verwendet ein programm namens date.

      Nicht mehr, auch wenn es in der Doku immer noch so steht.

      Gruß
      Kess

  2. Hi..
    ich hab's auch mal mit Perl unter NT versucht.. aber
    mein Tip.. wenn du schon NT hast machs lieber mit ASP
    falls du ein nur Forum suchst.. kannste evtl auch meins
    bekommen...
    kannste dir unter
    http://www.rohlig.de/guestbook/forum.asp?ID=Drizzt&CSS=http://privat.schlund.de/Drizzt/style/castle_1024.css

    mal anschauen...
    Der URL kannste übrigens auch ein anderes CSS übergeben
    wenn du weisst welche ID's das Forum benutzt.. *gg*

    gruss
    Jens

  3. Der Aufruf über einen Server (Testserver ist local WebSite 1.1) liefert den klassischen Error 500.

    Dein Problem ist kein NT-Problem, sondern ein Problem von WebSite 1.1 (das ich auch verwende).
    Überlege mal, wie ein Webserver unter Windows logischerweise eine CGI-Anwendung aktiviert, von der er nicht weiß, daß sie in Perl geschrieben wurde.

    Apache unter Windows NT würde genau das tun, was Du erwartest, nämlich Zeile 1 der CGI-Anwendung lesen, "#!" suchen, den Pfad dahinter als Interpreter auswerten und diesen Interpreter aufrufen, mit Deinem CGI-Skript als Parameter.
    Das liegt aber daran, daß Apache in der UNIX-Welt groß geworden ist.
    (Erfreulicherweise findet Apache unter Windows NT sogar "#!perl" ohne Pfad, falls Perl über die Environment-Variable PATH gefunden werden kann - das habe ich nicht mal unter IBM AIX hingekriegt!)

    WebSite führt einfach Dein CGI-Skript aus -es übergibt den Namen Deines Skripts an das Betriebssystem und hofft, daß dieses etwas damit anfangen kann. Bei Dir klappt das nicht.
    Versuche mal, die Endung Deines CGI-Skripts über den Explorer mit dem Perl-Interpreter als Anwendung zu verknüpfen (so daß bei einem Doppelklick auf das Perl-Skript der Perl-Interpreter aufgerufen wird). Genau das macht WebSite 1.1 auch - wenn das eine klappt, klappt das andere ebenfalls.

    Lästig dabei ist, daß man dann *.pl leider nicht mehr mit dem geliebten Editor verknüpfen kann, was man während der Entwicklung eigentlich gerne tun will - es geht leider nur eines von beidem ...