Jan Runte: Listeneinträge durch Perl

Hallo,

ich versuche durch Perl eine Liste zu erzeugen, die alle verschiedenen Einträge
beinhalten, die in einer Tabelle stehen. Der Aufbau ist folgender:

URL;Rubrik;Person;Film

Nun will ich z.B. alle Filme (nicht doppelt und dreifach) in der Liste anzeigen.
Ich habe das folgend gelöst:

#!/usr/bin/perl

$searchfile= "$ENV{DOCUMENT_ROOT}/cgi-bin/links.csv";

@temping= (" ");
open(SEARCH, "<$searchfile");
while(<SEARCH>)
{
chomp ($_);
@stardaten= split(/;/,$_, 4);
$temp= $stardaten[1];
for(@temping)
{
  if ($_ eq $temp)
  {
  
  }
   else
  {
   push(@temping, $temp);
  }
}
}
close(SEARCH);
@liste= sort(@temping);
for(@liste)
{
print "<option>$_</option>\n";
}

nun dauert das ein bischen, bis ich eine Fehlermeldung bekomme, sonst
reagiert er direkt bei anderen Skripten. Aber ich erkenne den Fehler nicht.
Kann mir da einer Hilfe leisten??

Danke im voraus.

jR.

  1. Hallo Jan,
    so ganz steige ich nicht durch Dein Programm, bin auch schon zu müde; aber unter Perlfaq4 "How can I extract just the unique elements of an array?" müsstest Du finden, was Du brauchst.
    Ich selbst habe diesen Algorithmus für das  Unifzieren mit Zählen von den Häufigkeiten der jeweiligen Elemente umgebastelt. Geht prima. Wichtig ist zu überlegen, was mit dem ersten und dem letzten Element passiert. Ggf. musst Du am Ende ein Dummy-Element einfügen, je nach Aufgabe.

    Ich hoffe, das hilft Dir ein wenig,

    Petra

    1. Hallo Jan,
      so ganz steige ich nicht durch Dein Programm, bin auch schon zu müde; aber unter Perlfaq4 "How can I extract just the unique elements of an array?" müsstest Du finden, was Du brauchst.
      Ich selbst habe diesen Algorithmus für das  Unifzieren mit Zählen von den Häufigkeiten der jeweiligen Elemente umgebastelt. Geht prima. Wichtig ist zu überlegen, was mit dem ersten und dem letzten Element passiert. Ggf. musst Du am Ende ein Dummy-Element einfügen, je nach Aufgabe.

      Ich hoffe, das hilft Dir ein wenig,

      Petra

      Hallo Petra,

      übler Fehler, der sich in meim Skript befand. Hab ihn gefunden. hehe, funktioniert
      aber trotzdem nicht. <:-]

      Aber Danke. Hat mir auch schon einiges weitergeholfen...hoffe ich.

      bye jR.

      1. Hi,

        übler Fehler, der sich in meim Skript befand. Hab ihn gefunden. hehe, funktioniert
        aber trotzdem nicht. <:-]

        Du gibst keinen Content-type aus - oder?

        Cheatah

        1. Hi,

          übler Fehler, der sich in meim Skript befand. Hab ihn gefunden. hehe, funktioniert
          aber trotzdem nicht. <:-]

          Du gibst keinen Content-type aus - oder?

          Cheatah

          Hi!

          Doch. Ich habs jetzt aber auch rausgefunden. Die Sourcen sind auch zu groß,
          um ins Forum zu stellen - hab dabei ne Menge weggelassen. Fehler. Ich habe es mit dieser,
          ein wenig modifizierter Version, realisieren können:

          #!/usr/loca/perl

          $searchfile= "$ENV{DOCUMENT_ROOT}/cgi-bin/links.csv";

          print "Content-type: text/html\n\n";
          print "<html>\n";
          print "<form action="/cgi-bin/view_links.cgi" method="post">
          print "<b>Movies:</b><br>\n";
          print "<select name="movie" size="1">

          @temping= ("");
          open(SEARCH, "<$searchfile");
          while(<SEARCH>)
          {
          chomp ($_);
          @stardaten= split(/;/,$_, 4);
          $temp= $stardaten[3];
          $found= 0;
          for(@temping)
          {
            if ($_ eq $temp)
            {
             $found= 1;
            }
          }
          if ($found == 0)
          {
            push(@temping, $temp);
          }
          }
          close(SEARCH);
          for(@temping)
          {
          print "<option>$_</option>\n";
          }

          print "</select>\n";
          print "<input type="submit">\n";
          print "</form>\n";
          print "</html>\n";