Marcus Vieß: suchen und ausgeben aus mit Pipes getrennter txt Datei

Ich lese mir halt mit :
open(DB2, '<$filename') || die 'Kann Datei nich öffnen!';
@liste7 = <DB2>;
close(DB2);

meine Datei aus. Die kann ich ja jetzt schön über $liste7[1], $liste7[2] etc. auslesen.

Die txt Datei ist so aufgebaut :

471|Road Trip|06:16:21|R|http://bla/review.cgi?roadtrip|a|1
470|Lifeforce|00:42:28|L|http://bla/review.cgi?lifeforce|a|1
469|Demon Knight|00:42:03|D|http://bla/review.cgi?demonknight|a|0|

jetzt möchte ich per htmleingabe im zweiten Feld suchen lassen und dann als ausgabe :

Demon Knight -> http://bla/review.cgi?demonknight

haben. Also im Feld 2 suchen und beim finden Feld 2 und 5 ausgeben lassen.

Ich hab da echt probleme mit. Kann mir einer ein bisschen helfen ?

  1. use Mosche;

    471|Road Trip|06:16:21|R|http://bla/review.cgi?roadtrip|a|1
    470|Lifeforce|00:42:28|L|http://bla/review.cgi?lifeforce|a|1
    469|Demon Knight|00:42:03|D|http://bla/review.cgi?demonknight|a|0|

    Schon mal die Funktion split benutzt? Dann wird es jetzt Zeit.

    my @aoa;
    foreach (@liste) {
      my @tmp = split(/|/, $_);
      push (@aoa, @tmp);
      # oder beides in einem:
      # push(@aoa, [ split(/|/, $_) ]);
    }

    Jetzt hast du einen Array of Arays. Du greifst folgendermassen auf die einzelnen Elemente zu:

    mit @zeile = @{$aoa[0]} bekommst du die erste Zeile.

    mit $eintrag = $aoa[0][0] bekommst du den ersten Eintrag der ersten Zeile.
    Das gleiche mit
    $eintrag = $aoa[0]->[0] (meines Erachtens schöner).

    Siehe dazu 'perldoc perlref' und 'perldoc -f split' (auch bei http://www.perldoc.com).

    use Tschoe qw(Matti);

    --

      Anyone who quotes me in their sig is an idiot. -- Rusty Russell.