Michael Krutwig: system() über CGI

Hallo,

ich bastel an einem Skript, das mir die Ausgabe des Befehls "perl -c skript.pl" in den Browser umleitet und somit das ständige checken von Programmen über Telnet erspart.

Wie kann ich die Ausgabe des Befehls

system "perl","-c -w","irgendeinskript.pl";

auch im Browser geniessen? Direkt der Konsole klappt die Ausgabe, der Browser bricht ab ("malformed header from script").

(Natürlich schicke ich VOR dem Aufruf einen korrekten Header an den Browser. Wenn ich den system()-Aufruf auskommentiere, dann läuft das Skript auch).

  1. Hallo,

    system "perl","-c -w","irgendeinskript.pl";

    Fehlermeldungen beim Switch -c werden ebenso zum STDERR gesendet, wie das auch ohne passiert.

    Versuchs mal mit
    system 'perl -c -M"CGI::Carp qw(fatalsToBrowser)" test.pl';

    bzw.

    open(IN,qq!perl -c -M"CGI::Carp qw(fatalsToBrowser)" test.pl|!);
    print while <IN>;

    Grüße
      Klaus

    PS.: Keine Ahnung, ob dies der 'reinen' Lehre vom perfekten Perl entspricht, hab's eben mit dem Apache (Win2K) getestet, und es geht.

    1. Moin!

      PS.: Keine Ahnung, ob dies der 'reinen' Lehre vom perfekten Perl entspricht, hab's eben mit dem Apache (Win2K) getestet, und es geht.

      Wie immer: Viele Wege fuehren nach ... wohin auch immer. Eine andere Variante, die aber nur funktioniert, wenn es die verwendete Shell  unterstuetzt (mit der weitverbreiteten bash funktioniert's z.B.), waere:

      print qx|perl -cw irgendeinskript.pl 2>&1|;

      So long