Steffen: suchfunktion

Beitrag lesen

Hi erstmal!!!

Ich möchte eine Perldatei schreiben in der es 7 modes gibt. Ich weiss auch wie ich es hinbekomme doch leider habe ich keine Ahnung, wie ich afu ein suchskript zugreifen soll das in einer Date liegt. mein skript sieht folgendermaßen aus!!!

use strict;
use CGI::Carp qw(fatalsToBrowser);

HTML-Header ausgeben

print "content-type: text/html\n\n";
print '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">', "\n";
print "<html><head><title>Test</title>";
print '<link rel="stylesheet" href="/css/css.css">',"\n";
print "</head><body>\n";

Variablen-Initialisierung

my (@input,$in,$total);
#my %form_dat;
my ($i,@cust, @arr, @erg, @matching);
my $request_method = $ENV{'REQUEST_METHOD'};
my @werte;
my %parameter;
my @paar;
my $aufruf;
my @spalten;

if ($request_method eq "GET") {
  $aufruf=$ENV{'QUERY_STRING'};
}
  elsif ( $request_method eq "POST"){
    read (STDIN, $aufruf, $ENV{'CONTENT_LENGTH'});
    print "Aufruf $aufruf<br>";
  }

@werte = split (/&/, $aufruf);
  foreach (@werte) {
    @paar=split (/=/, $_);
    $parameter{$paar[0]}=$paar[1];
  }
  #@werte=keys(%parameter);
  #print "Parameter ",keys(%parameter),"<br>";

my $pfad="/srv/www/cgi-bin/daten/";
   my $qdatei="$pfad$parameter{'datei'}";
   open (FILE,"<$qdatei")||
   "die Datei $parameter{'datei'} konnte nicht geöffnet werden";
   # ganze Datei in @file einlesen
   my @file = <FILE>;
   my $zeile=$file[0];

@spalten=split(/;/,$zeile);
   foreach (@spalten) {
     $parameter{$_}="";
   }
   shift (@file);
   # Array @file sortieren
   my @sorted = sort @file;
   foreach $_ (@sorted) {
      chomp;
      push @arr, [ split(/;/,$_)];
   }

mode=1 Ausgabe der Liste

mode=2 Ausgabe der Suchmaske

mode=3 Aufruf des Skriptest mit den Suchdaten zur Ausgabe der Suchergebnisse

mode=4 Ausgabe der Einfügemaske

mode=5 Ausführen der Eingabe in die Einfügemaske in die Liste

mode=6 Editierenmaske

mode=7 Einfügen des Editierten Eintrags

if ($parameter{"mode"} eq "1")
{
  print "<table border=1 cellpadding='2' cellspacing='2'>";
#Tabellenkopf ausgeben
  print "<form action='../../../mitarbeiterliste.html' method='POST'>";
  print "<tr><td colspan='8'><h2>Gesamte Liste</h2></td><td colspan='1'><input type='Submit' name='search' value='Eintrag suchen'</td></tr>";
  print "<tr>";
  foreach (@spalten) {
    print "<th>$_</th>";}
  print "</tr>";

Tabellenzeilen ausgeben

foreach (@arr) {
  # Schleifeniterator ist $_
  # Dereferenzieren der Arrayelemente mit $_->[Index]
  # Aktive Tabellenausgabe!!!!
    print qq(<tr><td>$_->[0]</td><td>$_->[1]</td> <td>$_->[2]</td><td>$_->[3]</td><td>$_->[4]</td><td>$_->[5]</td><td>$_->[6]</td><td>$_->[7]</td><td>$_->[8]</td></tr>);
  }
  print "</table>";
}
if ($parameter{"mode"} eq "2")
{
  print "<table border=1 cellpadding='2' cellspacing='2'>";
  print "<form action='../../../mitarbeiterliste.html' method='POST'>";
  print "<tr><td colspan='9'><h2>Suchen</h2></td></tr>";
  print "<tr>";
  foreach (@spalten) {
    print "<th>$_</th>";}
  print "</tr>";

Tabellenzeilen ausgeben

foreach (@arr) {
  # Schleifeniterator ist $_
  # Dereferenzieren der Arrayelemente mit $_->[Index]
  # Aktive Tabellenausgabe!!!!
    print qq(<tr><td>$_->[0]</td><td>$_->[1]</td> <td>$_->[2]</td><td>$_->[3]</td><td>$_->[4]</td><td>$_->[5]</td><td>$_->[6]</td><td>$_->[7]</td><td>$_->[8]</td></tr>);
  }
  print "</table>";
}

print "</table>\n";
print "</body></html>\n";

könnt ihr mir helfen eine Suchfunktion reinzubauen???? Bin am verzweifeln!!!

Danke schonmal für jede Antwort!!