hallo dies ist mein perl script.
kann mir bitte jemand schnell die löschen funktion einfügen in mein script.
dies schaff ich leider nicht. danke
#####################mein script ohne löschen funktion##########
#!/usr/bin/perl
cgi-funktionen laden
require "./cgi-lib.pl";
#array + hash werden hier ausgegeben.
#der hash wird im formtext verschiedene schreibstile festgelegt
@formfeld=qw( vn name str plz ort land email );
%formtext=qw( vn Vorname name Name str Straße plz PLZ ort Ort land Land email Email );
#------------------------------------
jetzt %in auffüllen
&ReadParse;
die gewünschte funktion
$fct=$in{fct};
datendatei
#hier werden die daten die man eingibt in verschiedene .db gespeichert
$data="/tmp/formdaten.db";
$data_tmp="/tmp/formdaten.db_tmp";
$id_file="/tmp/formdaten.id";
delimiter (trennzeichen);
$dl=";";
#------------------------------------ AUSGABE HEADER
gebe content + html-header aus
#html grundgerüst
print "Content-type: text/html\n\n";
print "<HTML><BODY BGCOLOR=#808080>\n";
print "<FORM ACTION=$ENV{SCRIPT_NAME} >\n";
print "<h2>Herzlich Willkommen auf XXX</h2><BR>
<FONT SIZE=7>$ENV{QUERY_STRING}</FONT><BR><HR>";
nur zur kontrolle
print "Verfügbare Daten:<BR>";
print "<TABLE bgcolor=red>";
#hier werden die daten einzeln aufgeführt
foreach $key (keys %in ){
 print "<TR><TD>$key:<TD> $in{$key}<BR>";
}
print "</TABLE>";
#----------------------------------- FUNKTIONEN
sub menu{
 print "
<HR>
<H1>Menü $ENV{SCRIPT_NAME}</H1><BR>
<TABLE>
<TR><TD>Funktion:<TD>
<SELECT NAME=fct>
<OPTION VALUE=>nichts
<OPTION VALUE=neuanlage>Neuanlage
<OPTION VALUE=loeschen>Loeschen
<OPTION VALUE=suchen SELECTED>Suchen
</SELECT><BR>
";
for $i (0..$#formfeld){
 print "<TR><TD>$formtext{$formfeld[$i]}<TD><INPUT TYPE=text NAME=$formfeld[$i] ><BR>";
}
print "
<TR><TD><TD> <INPUT TYPE=submit VALUE=ok>
</TABLE>
<HR>
"
}
#---------------------------------- ID lesen
sub alt_id{
        # lesen alte id
        open (IN, "$id_file");
        while (<IN>){ chomp; $alt_id=$_;}
        close IN;
        # wenn alte id < 10000
        if ( $alt_id < 10000 || $alt_id eq "" ){
                # id=10000
                $alt_id=10000;
        }
        # gebe wert zurück
        # testen letzter wert aus db
        open (IN, "$data_dir/$db");
        while (<IN>){
                chomp;
                local (@feld)=split(/$dl/,$_);
                if ( $alt_id < $feld[0]){
                        $alt_id=$feld[0];
                }
        }
        return ($alt_id);
}
#---------------------------------- ID speichern
sub save_id{
        # abspeichern id_nr
        local ( $letzt_id )=@_;
        open (ID, ">$id_file");
        print ID "$letzt_id";
        close ID;
}
#---------------------------------- Löschen Datensatz
sub loeschen_id{
 local ($zuloeschen_id)=@_;
 open ( IN, "$data" );
 open ( OUT, ">$data_tmp" );
 while (<IN>){
  chomp;
  if ( !( $_ =~ /^$zuloeschen_id;/ ) ){
   print OUT "$_\n";
   print "NICHT LÖSCHEN: $_<BR>";
  }else{
   print "LÖSCHEN: $_<BR>";
  }
 }
 close IN;
 close OUT;
 system ("mv ${data_tmp} $data");
}
#---------------------------------- Schreiben
sub neuanlage{
 # hier sollten die vars aus dem formular
 # abgespeichert werden
# letzte id
 # 1. letzte id überprüfen
        local $neu_id=&alt_id;
        # 2. letzte id erhöhen
        $neu_id++;
if ( $in{id_nr} <= $neu_id ){ $in{id_nr}=$neu_id;}
# letzte id speichern
        &save_id($neu_id);
# datensatz zusammenstellen (fängt mit $id an);
 local $out="$neu_id$dl";
 for $i (0..$#formfeld){
  $out=$out."$in{$formfeld[$i]}$dl";
 }
 # öffnen der datei
 open ( OUT, ">>$data");
print "OUT>  $out<BR>";
 # satz schreiben
 print OUT "$out\n";
# schließen
 close OUT;
}
#----------------------------------- LESEN DATEI
sub lesen {
 local ( $feldnr, $muster, @daten )=@_;
 local $i=0;
 local @zeile="";
 if ( $daten[0] eq "" ){
  open ( IN, "$data" );
  while (<IN>){
   chomp;
   local @feld=split( /$dl/, $_  );
   if ( $feld[$feldnr]=~/$muster/ ){
    $zeile[$i]=$_;
    $i++;
   }
  }
  close IN;
 }else{
  while ( <@daten> ){
   local @feld=split( /$dl/, $_  );
   if ( $feld[$feldnr]=~/$muster/ ){
    $zeile[$i]=$_;
    $i++;
   }
  }
 }
 return ( @zeile );
}
#----------------------------------- SUCHEN
sub suchen{
 @ausgabe0=&lesen(0,"$in{vn}");
 @ausgabe1=&lesen(1,"$in{name}", @ausgabe0);
 @ausgabe2=&lesen(2,"$in{email}",@ausgabe1);
 return @ausgabe2;
}
#----------------------------------- AUSGABE
sub ausgabe {
 local ($schalter, @zeile)=@_;
 local @feld="";
 local $j,$i,$out;
 # template einlesen
 open ( IN, "./tab.tmpl");
 while (<IN>){
  $template=$template.$_;
 }
 close IN;
for $i (0..$#zeile){
  $eintrag=$template;
  # aufteilen in Felder
  @feld=split(/$dl/,$zeile[$i]);
  $eintrag=~s/XXXFELD0XXX/$feld[0]/g;
  $eintrag=~s/XXXFELD1XXX/$feld[1]/g;
  $eintrag=~s/XXXFELD2XXX/$feld[2]/g;
  $eintrag=~s/XXXFELD3XXX/$feld[3]/g;
  $eintrag=~s/XXXFELD4XXX/$feld[4]/g;
  $eintrag=~s/XXXFELD5XXX/$feld[5]/g;
  $out=$out.$eintrag;
 }
 return $out;
}
sub ausgabe2 {
 local ($schalter, @zeile)=@_;
 local @feld="";
 local $j,$i,$out;
 $out="<TABLE BGCOLOR=yellow>\n";
 for $i (0..$#zeile){
  # aufteilen in Felder
  @feld=split(/$dl/,$zeile[$i]);
  $out=$out."<TR>";
  for $j (0..$#feld){
   $out=$out."<TD>$feld[$j]</TD>";
  }
  if ( $schalter eq "l" ){
   $out=$out."<TD><A HREF=$ENV{SCRIPT_NAME}?fct=loeschen2&zuloeschen_id=$feld[0]>Löschen</A>";
  }
  $out=$out."</TR>\n";
 }
 $out=$out."</TABLE>\n";
 return $out;
}
#----------------------------------- HAUPTPROGRAMM
wenn script ohne optionen aufgerufen wird
dann
if ( $fct eq "" ){
 # gebe auswahlformular aus
 print "Bitte wählen Sie eine Funktion!<BR>";
 print "Zum Neueintrage wählen Sie bitte die Funktion: <font color='red'><B>NEUEINTRAG</B></font>";
 print"<BR>";
 print "Zum suchen wählen Sie bitte die Funktion:<font color='green'><B>SUCHEN</B></font>";
ansonsten, wenn die funktion gleich "neuanlage"
}elsif ( $fct eq "neuanlage" ){
# aufruf der funktion "neuanlage"
 &neuanlage;
 # kommentar
print "Ihre Eingabe lautet wie folgt: ";
 print "$in{vn};$in{name};$in{email};$in{gebdatum};\n";
 print "Vielen Dank<BR>";
}elsif ( $fct eq "suchen" ){
 print "<HR>suchen nach vn <B>und</B>  name <B>und</B> email";
 print &ausgabe("" , &suchen);
 print "<HR>";
}elsif ( $fct eq "loeschen" ){
 # selektieren nach vn, name, email
 @select=&suchen;
 # auflisten und möglichkeit zum löschen	geben
 print &ausgabe("l",@select);
 # (folgefct = loeschen2)
}elsif ( $fct eq "loeschen2" ){
 # loeschen eines datensatzes
 &loeschen_id($in{zuloeschen_id});
}else{
 # gebe die gewünschte funktion aus
 print "<H2>--- $fct ---  soll ausgeführt werden</H2><br>";
}
&menu;
html footer
print "</FORM></BODY></HTML>";
1;