Werner: Wie erhalte ich den gesamten Pfad?

Hallo,

der nachfolgende open meldet "unable to open ./Sources/cook.txt ...., obwohl die das Unterverzeichnis vorhanden ist.
Offensichtlich aber nicht in dem Verzeichnis, das das fopen erwartet.
Wie kann ich herausfinden in welchem Gesamtpfad fopen sucht?

fopen(COOKFILE, ">./Sources/cook.txt")

Danke Werner

  1. der nachfolgende open meldet "unable to open ./Sources/cook.txt ...., obwohl die das Unterverzeichnis vorhanden ist.
    Offensichtlich aber nicht in dem Verzeichnis, das das fopen erwartet.
    Wie kann ich herausfinden in welchem Gesamtpfad fopen sucht?

    fopen(COOKFILE, ">./Sources/cook.txt")

    Das kann bedeuten, dass es in deinem cörrent wörking directory kein /Sources/cook.txt gibt, oder die Rechte nicht ausreichen.

    Vielleicht willst du erstmal ermitteln, was dein CWD ist:
    http://perldoc.perl.org/Cwd.html

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Hi,

      Vielleicht willst du erstmal ermitteln, was dein CWD ist:
      http://perldoc.perl.org/Cwd.html

      Das ist c:\XAMPP.
      Warum?
      Das Perl-Programm steht in d:/test/cgi-bin/
      Deshalb nahm ich an, dass relative Pfadangaben auf diesen Pfad bezogen werden.
      Was ist dann dies für ein Verzeichnis, wenn nicht das CWD?
      Gruß
      Werner

      1. Vielleicht willst du erstmal ermitteln, was dein CWD ist:
        http://perldoc.perl.org/Cwd.html
        Das ist c:\XAMPP.

        Willkommen in der schlechtest möglichen perl Installation.

        Warum?
        Das Perl-Programm steht in d:/test/cgi-bin/
        Deshalb nahm ich an, dass relative Pfadangaben auf diesen Pfad bezogen werden.

        Deine Annahme ist berechtigt, sofern nicht eine beschissen Installation wie XAMPP vorliegt.

        Was ist dann dies für ein Verzeichnis, wenn nicht das CWD?

        Frag' das die Entwickler von XAMPP. Ich empfehle dir einstweilen die ActivePerl Distribution für Windows.

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Deine Annahme ist berechtigt, sofern nicht eine beschissen Installation wie XAMPP vorliegt.

          Was ist dann dies für ein Verzeichnis, wenn nicht das CWD?

          Frag' das die Entwickler von XAMPP. Ich empfehle dir einstweilen die ActivePerl Distribution für Windows.

          Das will ich gerne versuchen.

          Gefunden habe ich
          "ActivePerl ist ein kostenloser Perl-Interpreter für Windows"
          Läuft der dann ebenfalls unter dem Server Apache oder wie ist die Infrastruktur zur Simulation des Internets auf dem eigenen Rechner?
          Danke
          Werner

          1. Gefunden habe ich
            "ActivePerl ist ein kostenloser Perl-Interpreter für Windows"
            Läuft der dann ebenfalls unter dem Server Apache oder wie ist die Infrastruktur zur Simulation des Internets auf dem eigenen Rechner?

            Na siehste, da ist deine Fehlkonzeption:
            Ja, wenn der Apache unter Windows läuft, dann läuft auch Perl.
            Es ist eine Frage der Apache Konfiguration. Ich weiss nicht was XAMPP dort hin schreibt. Ich habe meinen Apache auch separat installiert.

            Falls du ActivePerl installierst, hast du zusammen mit XAMPP zwei Perl Installationen. Das stellt die Frage, welches Perl aufgerufen wird.

            Falls dein Shebang lautet:
            #!/perl

            so ist ein Registry Eintrag dafür zuständig.
            Es kann helfen, kurz selbst ein normales Script (kein CGI) mit der neuen Installation öffen zu lassen.

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Gefunden habe ich
              "ActivePerl ist ein kostenloser Perl-Interpreter für Windows"
              Läuft der dann ebenfalls unter dem Server Apache oder wie ist die Infrastruktur zur Simulation des Internets auf dem eigenen Rechner?

              Na siehste, da ist deine Fehlkonzeption:
              Ja, wenn der Apache unter Windows läuft, dann läuft auch Perl.
              Es ist eine Frage der Apache Konfiguration. Ich weiss nicht was XAMPP dort hin schreibt. Ich habe meinen Apache auch separat installiert.

              Falls du ActivePerl installierst, hast du zusammen mit XAMPP zwei Perl Installationen. Das stellt die Frage, welches Perl aufgerufen wird.

              Falls dein Shebang lautet:
              #!/perl

              so ist ein Registry Eintrag dafür zuständig.
              Es kann helfen, kurz selbst ein normales Script (kein CGI) mit der neuen Installation öffen zu lassen.

              Sei mir nicht böse - aber ich verstehe nur Bahnhof.
              Also bisher habe ich ActivePerl nicht installiert sondern nur Apache und XAMPP.
              Damit konnte ich auch schön mein HTML und meine CGI-Programme testen.
              Jetzt machte nur das Yabb-Setup.pl Programm Probleme mit dem im Ursprungsbeitrag genannten falschen Verzeichnis.
              Werner

              1. Also bisher habe ich ActivePerl nicht installiert sondern nur Apache und XAMPP.

                Das Problem bei XAMPP ist, dass die Perl integration nur rudimentär sind (oder waren, ich bin kein Experte von XAMPP). Du brauchst aber, wenn du mit Perl arbeiten willst, eine Version, mit der du auch CPAN Module installieren kannst und updates ausführen.

                Es sollte aber kein Problem sein, ein ActivePerl oder strawberry Perl (das mittlerweile von vielen Perlern unter windows mehr geschätzt wird) dort zu integrieren. Allerdings musst du dich dann mit der Apachekonfiguration auseinandersetzzen.

                Jetzt machte nur das Yabb-Setup.pl Programm Probleme mit dem im Ursprungsbeitrag genannten falschen Verzeichnis.

                Ich finde das ist nach wie vor nicht wirklich geklärt. Was war denn noch mal die Ausgabe von cwd?

                Struppi.

                1. Jetzt machte nur das Yabb-Setup.pl Programm Probleme mit dem im Ursprungsbeitrag genannten falschen Verzeichnis.

                  Ich finde das ist nach wie vor nicht wirklich geklärt. Was war denn noch mal die Ausgabe von cwd?

                  Nach dem Beitrag von Alexander lasse ich lieber die Finger davon!
                  Danke für die Hilfen

  2. fopen(COOKFILE, ">./Sources/cook.txt")

    Bist du sicher, dass wir von Perl sprechen?
    Der Befehl heißt eigentlich open und du kannst dir auch den Grund ausgeben lassen:

    open(COOKFILE, '>', "./Sources/cook.txt") or die "Grund: $!"

    Ich vermute aber eher ein Rechteproblem oder du bist auf einem System, dass Groß- und Kleinschreibung unterscheidet.

    Struppi.

    1. Hi,

      fopen(COOKFILE, ">./Sources/cook.txt")

      Bist du sicher, dass wir von Perl sprechen?

      Ja, es handelt sich um das YaBB (Yet another bulletin board), das ich installieren möchte

      Der Befehl heißt eigentlich open und du kannst dir auch den Grund ausgeben lassen:

      open(COOKFILE, '>', "./Sources/cook.txt") or die "Grund: $!"

      Ich vermute aber eher ein Rechteproblem oder du bist auf einem System, dass Groß- und Kleinschreibung unterscheidet.

      Ich teste unter XAMPP (keine Rechteprobleme) und Groß-Kleinschreibung ist auch in Ordnung

      1. fopen(COOKFILE, ">./Sources/cook.txt")

        Bist du sicher, dass wir von Perl sprechen?
        Ja, es handelt sich um das YaBB (Yet another bulletin board), das ich installieren möchte

        Oh, das gibt es noch. Trotzdem ist fopen kein Perl.

        Der Befehl heißt eigentlich open und du kannst dir auch den Grund ausgeben lassen:

        open(COOKFILE, '>', "./Sources/cook.txt") or die "Grund: $!"

        Hast du das mal probiert?

        Ich vermute aber eher ein Rechteproblem oder du bist auf einem System, dass Groß- und Kleinschreibung unterscheidet.
        Ich teste unter XAMPP (keine Rechteprobleme) und Groß-Kleinschreibung ist auch in Ordnung

        Dann solltest du den Tipp von Beat mal nachgehen, das klingt plausibel.

        Struppi.

        1. Ja, es handelt sich um das YaBB (Yet another bulletin board), das ich installieren möchte

          Oh, das gibt es noch. Trotzdem ist fopen kein Perl.

          Gibte es aktuellere - möglichst in Perl?

          open(COOKFILE, '>', "./Sources/cook.txt") or die "Grund: $!"

          Hast du das mal probiert?

          Das lasse ich dann vorerst, wenn ich vielleicht doch ein anderes System finde.

          Werner

          1. Ja, es handelt sich um das YaBB (Yet another bulletin board), das ich installieren möchte

            Oh, das gibt es noch. Trotzdem ist fopen kein Perl.
            Gibte es aktuellere - möglichst in Perl?

            Aktueller als July 2010?
            http://www.yabbforum.com/

            mfg Beat

            --
            ><o(((°>           ><o(((°>
               <°)))o><                     ><o(((°>o
            Der Valigator leibt diese Fische
            1. Ja, es handelt sich um das YaBB (Yet another bulletin board), das ich installieren möchte

              Oh, das gibt es noch. Trotzdem ist fopen kein Perl.
              Gibte es aktuellere - möglichst in Perl?

              Aktueller als July 2010?
              http://www.yabbforum.com/

              Ich habe das "Oh, das gibt es noch" interpretiert als "alte Kamelle", daher die Frage!

              Trotzdem ist fopen kein Perl.

              Das wird aber in dem YaBB verwendet - seltsam!
              Werner

              1. Trotzdem ist fopen kein Perl.
                Das wird aber in dem YaBB verwendet - seltsam!

                Wieso seltsam, dann ist es eine Funktion von YaBB. Seltsam ist es, weil die Funktion so aussieht, als ob sie nichts anderes macht als open, dafür aber unsicherer.

                Struppi.

                1. Moin Moin!

                  Trotzdem ist fopen kein Perl.
                  Das wird aber in dem YaBB verwendet - seltsam!

                  Wir reden über dieses Machwerk?

                  Wieso seltsam, dann ist es eine Funktion von YaBB. Seltsam ist es, weil die Funktion so aussieht, als ob sie nichts anderes macht als open, dafür aber unsicherer.

                  Das sollte beim Rest des K^HCodes kaum auffallen -- modernes, sicheres Perl sieht anders aus. Kein use strict, Taint-Mode ist aus, Code und HTML-Fragmente wild gemischt statt eine Template-Engine zu benutzen, Perl4-Syntax, Code in Tonnen von Scripten statt in Modulen, alle Module und alle Einstellungen im CGI-Verzeichnis, nur duch .htaccess-Dateien "geschützt"[1], dazu gepackte Module sind mindestens ein paar Jahre alt, ... -- ich höre lieber auf, sonst wird mir noch schlecht.

                  fopen ist übrigens ab Zeile 1312 von Sources/Subs.pl definiert, und sieht völlig wirr aus.

                  Ich würde dieses Zeug allerhöchstens auf einem völlig von allen anderen Netzen getrennten Rechner laufen lassen, nicht im LAN und schon gar nicht irgendwo auf einem aus dem Internet erreichbaren Rechner.

                  Alexander

                  [1] in Gänsefüßchen, weil Webserver durchaus so konfiguriert sein können, dass sie .htaccess-Dateien stumpf ignorieren. Und schließlich ist auch nicht jeder Webserver ein Apache.

                  --
                  Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
                  1. Nach dem Zerriss des Produktes, der mich natürlich zurückschrecken lässt,
                    würde ich mich freuen, wenn auch ein Vorschlag für ein besseres käme.
                    Danke