Johannes: Scripte aufrufen...

Hi!

Ich hab absolut wenig Ahnung von Perl, hab aber ein Problemchen:
Ich hab ein Script (index.pl) und möchte in diesem Script das Script (create.pl) aufrufen. Beide Scripte machen HTML ausgaben und ich möchte von beiden Scripten die HTML-Ausgabe im Browser sehen. Wie lautet der Befehl, den ich in der index.pl eintragen muss um mein Ergebnis zu erhalten?

Vielen Dank im Voraus für die Hilfe!

Mfg
Johannes

  1. Hi!

    Ich hab absolut wenig Ahnung von Perl, hab aber ein Problemchen:
    Ich hab ein Script (index.pl) und möchte in diesem Script das Script (create.pl) aufrufen. Beide Scripte machen HTML ausgaben und ich möchte von beiden Scripten die HTML-Ausgabe im Browser sehen. Wie lautet der Befehl, den ich in der index.pl eintragen muss um mein Ergebnis zu erhalten?

    Damit ein Script was zum Browser schickt, brauchts die CGI Schnittstelle, d.h., einen dazu konfigurierten Webserver.

    Der Aufruf geht z.B. mit http://example.com/cgi-bin/script.pl

    script.pl gibt als 1. den Content-type aus mit

    print "Content-type: text/html\n\n";

    wobei die beiden \n\n eine Leerzeile ergeben.

    Als 2. gibt das Script HTML Code aus, mit print:

    print "<h1>Hola!</h1>";

    Gruss, Rolf

    --
    SELFforum - Das Tor zur Welt!
    Theoretiker: Wie kommt das Kupfer in die Leitung?
    Praktiker: Wie kommt der Strom in die Leitung?
    1. Damit ein Script was zum Browser schickt, brauchts die CGI Schnittstelle, d.h., einen dazu konfigurierten Webserver.

      Ne, hast mich falsch verstanden.

      Der Webserver ist bereits installiert und die Perl-Module sind auch korrekt installiert (ich kann das 2. Script aufrufen und ausführen lassen).

      Meine Frage war nur die, wie ich im 1. Script das 2. aufrufen kann und beide Scripte mir HTML-Ausgaben tätigen.
      In PHP sähe das so aus:

      1. Script:

      ........HTML-Code.....
      <?php include(./script2.php); ?>
      .....noch mehr HTML-Code

      2. Script:
      .......HTML-Code....

      Mein Problem ist, dass ich von Perl null Ahnung hab, aber eben dieses Problem mit den Scripten ewältigen muss.

      1. Hi,

        Ne, hast mich falsch verstanden.

        Kann sein. Warum brauchst du eigentlich 2 Scripts?

        Gruss, Rolf

        --
        SELFforum - Das Tor zur Welt!
        Theoretiker: Wie kommt das Kupfer in die Leitung?
        Praktiker: Wie kommt der Strom in die Leitung?
      2. use Mosche;

        Du kannst übrigens auch einfach keine E-Mail-Adresse angeben, anstatt das Forum mit einer falschen vollzumüllen.

        Meine Frage war nur die, wie ich im 1. Script das 2. aufrufen kann und beide Scripte mir HTML-Ausgaben tätigen.

        perldoc LWP::Simple

        use LWP::Simple;
                my $content = get("http://www.sn.no/");

        oder arbeite mit Backticks, wenn es sich um "normales" Script handelt, was nicht über CGI läuft:

        my $content = script2.pl;

        Bei beiden Fällen werden deine Parameter nicht mit übergeben. Wenn du das brauchst, schau in
        perldoc LWP

        use Tschoe qw(Matti);

        --
          Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
  2. Ich hab absolut wenig Ahnung von Perl, hab aber ein Problemchen:
    Ich hab ein Script (index.pl) und möchte in diesem Script das Script (create.pl) aufrufen. Beide Scripte machen HTML ausgaben und ich möchte von beiden Scripten die HTML-Ausgabe im Browser sehen. Wie lautet der Befehl, den ich in der index.pl eintragen muss um mein Ergebnis zu erhalten?

    aufrufen ist entweder der falsche Begriff oder den Konzept ist nicht sauber. Du willst vermutlich ein 2. Skript einbinden um die Funktionen zu benutzen. Dazu gibt es in Perl ein Reihe von Möglichkeiten je nachdem was du wirklich willst oder brauchst.

    Schau mal in die Doku und such nach require, use oder do

    Struppi.

    1. Schau mal in die Doku und such nach require, use oder do

      Bei require blick ich schon gleich gar net durch in der Doku. Use funktioniert irgendwie net. Und bei do erscheinen keine Ausgaben.

      Gibt es für selten dämliche Perl benutzer, wie ich einer bin, nicht einen Befehl, der so oder ähnlich funktioniert wie dieser in PHP:

      include("datei");

      PHP ist doch ein weiterentwickeltes Perl, oder seh ich das falsch? Irgendwie muss es doch möglich sein diesen PHP-Befehl in Perl "nachzuahmen".

      1. Bei require blick ich schon gleich gar net durch in der Doku. Use funktioniert irgendwie net. Und bei do erscheinen keine Ausgaben.

        Gibt es für selten dämliche Perl benutzer, wie ich einer bin, nicht einen Befehl, der so oder ähnlich funktioniert wie dieser in PHP:

        include("datei");

        PHP ist doch ein weiterentwickeltes Perl, oder seh ich das falsch? Irgendwie muss es doch möglich sein diesen PHP-Befehl in Perl "nachzuahmen".

        PHP ist in HTML eingebettet. Du erzeugst also mit PErl erstmal keine Ausgabe solange du nicht explizit eine Funktion dafür aufrufst (in deinem Falle print).

        D.h. weder durch require noch durch use wird eine Ausgabe erzeugt.

        Da dein Problem sehr unspezifisch zu sein scheint, läßt sich nur schwer sagen, was du eigentlich willst. Ich vermute mal einen Denkfehler. Wenn du ein Skript einbindest, wird es nicht aufgerufen. Wenn du eine Funktion aus Skript 2 benötigst, musst du dieses aufrufen alles andere ist ein Konzeptionsfehler (der Gedanke, das das einbinden mit require ein CGI Skript aufrufen soll)

        Struppi.

        1. Hm, schon klar. Perl ist eben net meine Welt. Ich hatte da mal eine Woche Seminar über diese Sprache, aber am Ende wusste ich mehr über das Verhalten eines Webservers bei Parameterübergabe als vom eigentlichen Perl selber.

          Ich werd jetzt einfach meine Ausgaben im 2. Script mit integrieren.. dann spar ich mir den Aufruf und es muss trotzdem noch funktionieren.

          Vielen Dank!

          Mfg
          Johannes