suchen und ausgeben aus mit Pipes getrennter txt Datei
Marcus Vieß
- perl
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 ?
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);