Struppi: Aufruf eines zweiten Skripts

Beitrag lesen

Ich habe zwei CGI/Perl-Skripten geschrieben. Skript 1 liest Daten aus einer Textdatei und erstellt daraus eine HTML-Datei mit einem Formular (mehrere Text-Eingabefelder). Beim Abschicken der in das Formular eingetragenen Daten wird Skript 2 aufgerufen; dieses fügt die aus dem Formular gelesenen Daten der genannten Textdatei hinzu (im unten zitierten Code nicht enthalten, da wohl nicht relevant) und ruft wieder Skript 1 auf, das dann eine aktualisierte HTML-Datei erzeugen soll.

Üblicherweise bindet man das zweite Skript mit require oder use ein. exec oder system ist hier nicht sinnvoll.

also das ganze besser Modular aufbauen und dann die nötigen Module einbinden.

In etwa so:

Hauptdatei:

#!/usr/bin/perl -w  
use strict;  
use CGI;  
  
if( CGI::param('save')  
{  
require 'test2.pl';  
save(); # <- Hier deine Speicherfunktion im Modul test2.pl  
}  
  
print CGI::header, CGI::start_html(), SeiteErzeugen()  
, CGI::end_html();  
  
sub SeiteErzeugen { # erzeugt nur den Body  
  
  open(DATEI, "c:/Textdatei.txt") || die "Datei nicht gefunden";  
  my @Daten = <DATEI>;  
  close(DATEI);  
  
  my $Nummer = 0;  
  
  print CGI::start_form();  
  
  foreach(@Daten) {  
    print CGI::p( $_ . '<br>'  
    . CGI::textfield( -name => 'Name'. $Nummer)  
    . CGI::submit( -name => 'save', -value => 'Eintragen)  
    );  
  
  $Nummer++;  
  }  
  
  print CGI::end_form();  
}  
  
# test2.pl:  
  
#!/usr/bin/perl -w  
use strict;  
  
sub save()  
{  
....  
}  

Struppi.