Bogus: Wie schreibt man eine .cgi datei mit hilfe einer .cgi datei?

Hye

Folgende Frage:
Wie kann ich mit Hilfe einer cgi-datei eine cgi-datei schreiben?

Was ich wissen möchte ist die Sache mit den ganzen zeichen wie zb.: ; { } $ " usw.

muss ich diese alle dokumentieren? mit \ oder geht das irgendwie mit dem quotemeta ?

wäre toll wenn ihr da was wisst.

cu

  1. Hallo Bogus

    Wie kann ich mit Hilfe einer cgi-datei eine cgi-datei schreiben?
    Was ich wissen möchte ist die Sache mit den ganzen zeichen wie zb.: ; { } $ " usw.

    Ich nehme mal an, Du redest von Perl. Ganz normal: Datei mit open zum Schreiben oeffnen und dann mit print DATEIHANDLE den gewuenschten Inhalt in die Datei schreiben.

    Wenn Du mit einzelnen print-Befehlen arbeitest, musst Du innerhalb dessen, was Du printest, auf jeden Fall maskieren:
    "   um ein " zu schreiben
    \   um ein \ zu schreiben
    $   um ein $ zu schreiben
    @   um ein @ zu schreiben
    %   um ein % zu schreiben
    Das sind glaube ich die Zeichen, die innerhalb eines Print-Strings von Perl ausgewertet werden und deshalb maskiert gehoeren, wenn man sie eben nur printen will.

    Wenn Du mit der Streamvariante print << ENDE arbeitest, brauchst Du meines Wissens " nicht maskieren.

    viele Gruesse
      Stefan Muenz

    1. Hallo Stefan, hallo Bogus!

      Wenn Du mit einzelnen print-Befehlen arbeitest, musst Du innerhalb dessen, was Du printest, auf jeden Fall maskieren:
      "   um ein " zu schreiben
      \   um ein \ zu schreiben
      $   um ein $ zu schreiben
      @   um ein @ zu schreiben
      %   um ein % zu schreiben
      Das sind glaube ich die Zeichen, die innerhalb eines Print-Strings von Perl ausgewertet werden und deshalb maskiert gehoeren, wenn man sie eben nur printen will.

      Leider nur die halbe Wahrheit. Will man einen String nutzen/definieren/ausgeben und bastelt sich diesen mit "...." zusammen, liegst Du völlig richtig. Innerhalb dieser String werden Variablen substituiert. $, @, und % haben hier also eine Spezielle Bedeutung. Man kann aber auch mittels '...' Strings verwenden. Hier wird dann nicht substituirt, so daß folgende Maskierungen von Nöten sind:
      '   um ein ' zu schreiben
      \   um ein \ zu schreiben

      Wenn Du mit der Streamvariante print << ENDE arbeitest, brauchst Du meines Wissens " nicht maskieren.

      ;-) Wobei hier ENDE gleichzusetzen ist mit 'ENDE'. Verwendet man dagegen "ENDE" ... s.o.

      Jörk

      1. Hi,

        Wenn Du mit der Streamvariante print << ENDE arbeitest, brauchst Du meines Wissens " nicht maskieren.
        ;-) Wobei hier ENDE gleichzusetzen ist mit 'ENDE'. Verwendet man dagegen "ENDE" ... s.o.

        nö:

        open(FILE,">$filename");
        print FILE << ENDE
        #!/usr/bin/perl
        print "Content-type: text/html\n\n";
        print "Hallo Welt!\n";
        exit;
        ENDE;
        close(FILE);
        print "Location: $http_path_to_filename\n\n";

        Müßte klappen, vorausgesetzt die Datei ist dann ge-chmod-et ;-)

        Cheatah