Matthias: Perl unter NT

Hallo,

ich versuche gerade ein Skript von UNIX auf NT umzusetzen, habe jedoch Probleme
damit. Vermute es liegt an der Pfadangabe. Unter Unix mußte ich den ganzen
Pfad vom Root aus angeben, wie muß ich das unter NT machen???

Gruss Matthias

  1. Hallo Matthias,

    vor kurzem habe ich es mit folgender erster Zeile im Skript geschafftt:

    #!C:\perl\bin\perl.exe

    Ist natuerlich entsprechend anzupassen...

    Gruss

    Uwe

    Hallo,

    ich versuche gerade ein Skript von UNIX auf NT umzusetzen, habe jedoch Probleme
    damit. Vermute es liegt an der Pfadangabe. Unter Unix mußte ich den ganzen
    Pfad vom Root aus angeben, wie muß ich das unter NT machen???

    Gruss Matthias

    1. vor kurzem habe ich es mit folgender erster Zeile im Skript geschafftt:

      #!C:\perl\bin\perl.exe

      Bei NT muß man eigentlich gar nichts in die erste Zeile schreiben. (Falls dein perl richtig konfiguriert ist, sprich path und Dateinamenserweiterungsregistrierung - ihr wißt was ich mein - richtig gesetzt ist).

      cgi

      1. Hi Cgi!

        Bei NT muß man eigentlich gar nichts in die erste Zeile schreiben. (Falls dein perl richtig konfiguriert ist, sprich path und Dateinamenserweiterungsregistrierung - ihr wißt was ich mein - richtig gesetzt ist).

        Das ist zwar richtig, auch ohne die Einschraenkung in Klammern. In der Tat bringt diese Zeile, auch wenn
        eine entsprechende Zuordnung der Extension nicht vorhanden ist, auf Dos und WinNT ueberhaupt nichts.
        Viele installieren sich Perl jedoch, um CGI-Scripte zu testen, wobei mit gutem Grund oft ein Apache als
        Webserver zum Einsatz kommt. Und *der* interessiert sich sehr wohl fuer diese Zeile. Normalerweise
        ueberaesst er es dem OS, zu entscheiden, *wie* eine Anwendung ausgefuehrt wird. Da Win da jedoch
        nicht so gut mitspielt, haben die Programmierer kurzerhand die Interpretation der ersten Zeile in den
        Windows-Apachen mit eingebaut. Er entscheidet also anhand dieser Zeile, auf welche Weise ein CGI-
        Script ausgefuehrt wird. Aber eigentlich solltest Du das doch wissen, wenn Du diesen Namen traegst. ;-)

        So long, Calocybe

        1. Script ausgefuehrt wird. Aber eigentlich solltest Du das doch wissen, wenn Du diesen Namen traegst. ;-)

          So long, Calocybe

          Hi Calocybe,

          diesen Namen trage ich eigentlich schon viel länger, als ich cgi kenne, da er die Abkürzung meines eigentlichen Nicks ist (c-gi = Siggi).
          Danke für den Hinweis. So gesehen hast du natürlich recht.

          cgi

          1. Hi C-gi ;-)

            diesen Namen trage ich eigentlich schon viel länger, als ich cgi kenne, da er die Abkürzung meines eigentlichen Nicks ist (c-gi = Siggi).

            Oh. Daran hab ich nun wahrlich nicht gedacht. Kommt davon, wenn man sich zulange mit immer wieder denselben Sachen beschaeftigt. *g*

            So long

  2. Hallo,

    ich versuche gerade ein Skript von UNIX auf NT umzusetzen, habe jedoch Probleme
    damit. Vermute es liegt an der Pfadangabe. Unter Unix mußte ich den ganzen
    Pfad vom Root aus angeben, wie muß ich das unter NT machen???

    ... im Prinzip genauso wie unter UNIX, bei NT ggf. den DriveLetter hinzufügen und anstelle des Backslash einen normalen Slash verwenden oder Backslash mit Backslash maskieren; Rolf

  3. Hallo Matthias,

    Du mußt in der Tat den ganzen Pfad eingeben. Perl speichert den lokalen Pfad des ausführende Skriptes übrigens in der Variable $0 ab.

    Hier ein kleines Skript, welches über den Browser aufgerufen den lokalen Pfad (ohne den Skriptnamen) zurückgibt:

    #!/usr/bin/perl -w

    use CGI qw(:standard);

    windows/dos?

    if      ($0=~m#^(.*)\#) { $localpath = $1; }

    unix?

    elsif  ($0=~m#^(.*)/# ) { $localpath = $1; }
    else                  { pwd =~ /(.*)/; $localpath = $1; }

    print header;
    print start_html;
    print "Das lokale Verzeichnis ist: $localpath\n\n";
    print end_html;