Moritz: Datei in Hauptverzeichnis schreiben

Hallo,
wie kann ich mit einem Perl Skript in eine Datei schreiben, die im übergeordneten Verzeichnis liegt, also das Perl-Skript liegt z.B. im cgi-bin und es soll in eine Datei geschrieben werden, die im Hauptverzeichnis einer Homepage liegt.

Vielen Dank,
moritz

  1. Hallo,

    wie kann ich mit einem Perl Skript in eine Datei schreiben, die im übergeordneten Verzeichnis liegt, also das Perl-Skript liegt z.B. im cgi-bin und es soll in eine Datei geschrieben werden, die im Hauptverzeichnis einer Homepage liegt.

    Ganz einfach:
    open OUT, ">/path/to/file" or die $!;

    It means: Mit dem Verzeichnis wo script liegt, hat das nix zu tun. Du gibst beim Öffnen des Handlers einfach den FullPath zur Datei an die beschrieben werden soll und pasta.

    Gruss, Rolf

    --
    KnowHow veröffentlichen statt patentieren!
  2. Hallo Moritz

    Wenn dein Script auf dem fernen Server läuft,
    solltest du für dein Html Verzeichnis den Pfad angeben, den du dann noch besonderst spezifizieren kannst.

    zum Beispiel

    my $internhtmlpfad = 'home/maxundmoritz.com/html/'; # :)

    Die Pfadangabe entnimmst du den Unterlagen deines Hostservers.
    my $filepfad= $internhtmlpfad.'einordner/file.html' ;

    Es ist nicht gewährt, dass ein solcher relativer Pfad funktioniert.
    my $relativerfilepfad = '../html/einordner/file.html' ;

    Der Grund..... Verzeichnissystem kann anders sein,
    als das Routing welches du mit FTP zu sehen bekommst.

    in
    my $internhomepfad = 'home/maxundmoritz.com/
    hast du nicht uneingeschränkte Rechte zu schreiben. sondern nur, was dir der Seerverbetreiber zugesteht.
    also kannst du eventuell gar nicht oberhalb des cgi-bin verzeichnis machen was du willst.

    zum Beipiel:
    my $internlogpfad = 'home/maxundmoritz.com/log/
    my $internstatspfad = 'home/maxundmoritz.com/stats/
    hast du eingeschrenkte Rechte

    mfg Beat

    1. ok, vielen Dank, jetzt funktioniert es!

      moritz

  3. wie kann ich mit einem Perl Skript in eine Datei schreiben, die im übergeordneten Verzeichnis liegt, also das Perl-Skript liegt z.B. im cgi-bin und es soll in eine Datei geschrieben werden, die im Hauptverzeichnis einer Homepage liegt.

    Übergeordnet und Hauptverzeichniss können zwei ganz verschiedene sachen sein.

    Übergeordnet ist ganz enfach:
    my $file = "../test.txt";

    Hauptverzeichniss ist schon komplizierter, falls du das Hauptverzeichniss deiner Domain meinst, da dies eine Sache ist, die der Server organisiert.

    Auf deinem Filesystem ist das Hauptverzeichniss '/', aber ob du darauf Zugriff hast ist zweifelhaft.

    Eventuell kannst du das Hauptverzeichniss rausfinden, indem du
    $ENV{SCRIPT_FILENAME}
    $ENV{SCRIPT_NAME}
    miteinander vergleichst.

    Ansonsten schau dir mal an welche Umgehbungsvariabeln dein server zu Verfügung stellt:
    use CGI qw/:standard/;

    print header,
      start_html,
      h2("Parameter:"), CGI::as_string(),
      h2("Environment:"),
      (map { p("$_ => $ENV{$_}") } sort keys %ENV),

    end_html;

    Struppi.