DrJekyll98: Perl Datei auf Deskop erstellen

Hallo, ich habe eine Frage: Wie kann ich mit einem Perl-Programm eine .txt-Datei auf dem Desktop erstellen lassen, wenn sich das Perl-Programm in einem anderen Ordner befindet? PS: ich weiß bereits, wie man eine .txt-Datei mit Perl erstellt, allerdings wird diese immer im selben Ordner erstellt, wo sich das Perl-Programm befindet.

Danke im Vorraus :D

akzeptierte Antworten

  1. Tach!

    Wie kann ich mit einem Perl-Programm eine .txt-Datei auf dem Desktop erstellen lassen, wenn sich das Perl-Programm in einem anderen Ordner befindet?

    Genauso wie mit jedem anderen Programm. Entweder in das Verzeichnis wechseln oder den Dateinamen mit Verzeichnis absolut oder relativ zum derzeitigen Arbeitsverzeichnis angeben.

    dedlfix.

    1. Tach!

      Wie kann ich mit einem Perl-Programm eine .txt-Datei auf dem Desktop erstellen lassen, wenn sich das Perl-Programm in einem anderen Ordner befindet?

      Genauso wie mit jedem anderen Programm. Entweder in das Verzeichnis wechseln oder den Dateinamen mit Verzeichnis absolut oder relativ zum derzeitigen Arbeitsverzeichnis angeben.

      dedlfix.

      wie würde das im Quelltext aussehen? von davon habe ich noch nie etwas gehört (habe aber auch erst seit ein paar Monaten Informatik) Mein Programm sieht derzeit so aus:

      open(TE, ">test.txt"); print TE "1", "\n"; close(TE);

      wie müsste ich dieses ändern?

      VG DrJekyll98

      1. 
        > open(TE, ">test.txt");
        > 	print TE "1", "\n";
        > close(TE);
        
        

        Wo gibt die Dame denn den Dateiname an? Und was hindert die Dame diesem einen Verzeichniseintrag hinzuzufügen und dabei zu bedenken, dass falls unter Windows, der als Verzeichnistrenner verwendete Backslash entweder doppelt sein muss oder dass man einfache Hochkommas verwenden muss?

        Windows:

        
        > open(TE, "> C:\\users\\meier\\Desktop\\test.txt");
        
        

        oder

        
        > open(TE, '> C:\users\meier\Desktop\test.txt');
        
        

        Brauchbares OS (Linux, Unix, BSD...)

        
        > open(TE, '> /home/meier/Desktop/test.txt');
        
        

        Die genauen Pfade such Dir selbst raus oder hat man Dir auch noch nicht beigebracht, wie das geht?

        davon habe ich noch nie etwas gehört (habe aber auch erst seit ein paar Monaten Informatik)

        Hm. Und was ist mit "Buch" oder einfach "Suchmaschine"?

        1. Tach!

          Wo gibt die Dame denn den Dateiname an? Und was hindert die Dame diesem einen Verzeichniseintrag hinzuzufügen und dabei zu bedenken, dass falls unter Windows, der als Verzeichnistrenner verwendete Backslash entweder doppelt sein muss oder dass man einfache Hochkommas verwenden muss?

          Windows kann schon lange auch mit Vorwärts-Slashes als Verzeichnistrenner umgehen.

          Brauchbares OS (Linux, Unix, BSD...)

          Also fällt wohl Windows auch in diese Kategorie.

          dedlfix.

        2. > open(TE, ">test.txt");
          > 	print TE "1", "\n";
          > close(TE);
          

          Wo gibt die Dame denn den Dateiname an?

          welche Dame ?

          Und was hindert die Dame diesem einen Verzeichniseintrag hinzuzufügen und dabei zu bedenken, dass falls unter Windows, der als Verzeichnistrenner verwendete Backslash entweder doppelt sein muss oder dass man einfache Hochkommas verwenden muss?

          Unwissen ;)

          Windows:

          > open(TE, "> C:\\users\\meier\\Desktop\\test.txt");
          

          oder

          > open(TE, '> C:\users\meier\Desktop\test.txt');
          

          Brauchbares OS (Linux, Unix, BSD...)

          > open(TE, '> /home/meier/Desktop/test.txt');
          

          Danke ! jetzt weiss ich wie es geht

          Die genauen Pfade such Dir selbst raus oder hat man Dir auch noch nicht beigebracht, wie das geht?

          ja ich weis, wie das geht, die genauen Pfade herauszusuchen bekomme ich schon hin (Der Desktop sollte ja nur exemplarisch als anderes Verzeichnis dienen

          davon habe ich noch nie etwas gehört (habe aber auch erst seit ein paar Monaten Informatik)

          Hm. Und was ist mit "Buch"

          Wir haben nur ein elektronisches Lehrbuch, welches unser Lehrer selbst erstellt hat. Da steht das nicht drin.

          oder einfach "Suchmaschine"?

          dort habe ich leider nichts verständliches gefunden

          Danke für die Hilfe !!!

          1. Tja, das ist wirklich ein Drama. Brauchbare Lehrbücher für den Info-Unterricht scheint es nicht zu geben.

            Wenn Du übrigens ein Programm schreiben willst, dass auf den Desktop des GERADE ANGEMELDETEN Benutzers (sagen wir mal: Müller) schreibt, dann kommst Du mit C:\Users\Meier nicht weit.

            1. User Müller darf nicht ins User-Verzeichnis von User Meier schreiben
            2. User Müller sieht nicht, was User Meier auf seinem Desktop hat
            3. User Müller hat vielleicht sein User-Verzeichnis irgendwo anders hin verschoben

            Unter Windows (na gut, Windows NT und höher) musst Du dafür eine Umgebungsvariable auslesen, namens USERPROFILE. Und darin dann ins Desktop-Verzeichnis schreiben. Dafür brauchst Du natürlich die Unterrichtseinheiten "Zugriff auf Environment" und "Stringverkettung" als Vorausetzung, es sei denn, Perl ist so schlau und kann mit open(TE, "> %USERPROFILE%\Desktop\test.txt") umgehen.

            Wie es in der Welt jenseits der Fenster aussieht, muss ein X-Fan sagen. Da gips bestimmt auch eine Möglichkeit, auf das Userverzeichnis zuzugreifen ohne den Namen des Users zu kennen...

            Rolf

            1. es sei denn, Perl ist so schlau und kann mit open(TE, "> %USERPROFILE%\Desktop\test.txt") umgehen.

              Wozu sollte es das tun? Perl ließt (wie jede auch nur halbwegs brauchbare Programmiersprache) Umgebung, Optionen und Argumente.

              #! /usr/bin/perl
              use strict;
              foreach(keys(%ENV)) {
                 print "$_ : $ENV{$_}\n";
              }
              

              oder gleich:

              #! /usr/bin/perl
              use strict;
              print "HOME : $ENV{'HOME'}\n";
              

              also:

              open(TE, '> ' . $ENV{'HOME'} . '/Desktop/test.txt');
              
              1. Perl ließt

                Das Wort „ließ“ kommt von „lassen“, da steckt ein Doppel-s drin, das bei „ie“ zum „ß“ wird. In „lesen“ ist nur ein „s“ drin, daher „Perl liest“. „Leasen“ ist wiederum etwas völlig anderes.

                1. [Orthografieblablah] … ist wiederum etwas völlig anderes.

                  Ein "Oberlehrer" ist kein "Professor". Bitte passe Deinen Benutzername an.

                  1. Begriffe verwechselt?

                    Ja, hast du offensichtlich.

                    1. Meine Herren, Ihr werdet doch wohl nicht wegen sowas aneinandergeraten oder ? Es lohnt sich mit Sicherheit nicht, wegen soetwas zu streiten, schon garnicht im Internet... Fakt ist, dass der Inhalt verständlich sein muss und es nicht irreführend sein darf ;)

                  2. Bitte passe Deinen Benutzername an.

                    Korrekt wäre „Deinen Benutzernamen“ gewesen.

              2. Ich kann kein Perl. Ich wollte nur auf die Problematik mit dem Verzeichnisnamen hinweisen und aufzeigen, wie eine Lösung erreichbar sein kann.

                Danke für die Darstellung, wie man in PERL das Environment liest.

                Und danke für einen guten Lacher zum Thema Orthographie-Trollerei :)

                Gruß Rolf