KentMedlem sedan juli 2000355 inlägg Hej, håller på att bygga en sökmotor som ska söka efter personer,
men den funkar inte riktigt som jag vill, koden som söker igenom textfilen ser ut som följer:
if (($data[0] =~ /$namn/i) || ($data[1] =~ /$epost/i) || ($data[2] =~ /$hemsida/i) || ($data[3] =~ /$intresse/i)) {
resultaten
}
Söker jag efter ex Oskar under namn så visas det bara 1 träff, när det
igentligen ska ge 30 träffar, hur löser jag detta?
Har jag bara en sökslinga ex, if ($data[0] =~ /$namn/i) {
så funkar det utan problem, men det är när jag sätter ihop en lång sökslinga som det krånglar till sig.
Peter_BMedlem sedan apr. 2000642 inlägg Jag antar att du (naturligtvis ;)) loopar igenom alla rader och kör if-satsen varje gång?
kan du kanske klistra in lite mer kod så vi får en känsla för sammanhanget?
KentMedlem sedan juli 2000355 inlägg Javisst loopar jag igenom posterna, kod:
open (DATA, "data.txt") || error("Fel.");
@poster = <DATA>;
$rad = @poster;
close DATA;
$raknare = 0;
foreach $rad (@poster) {
@data = split(/\|/,$rad);
if (($data[0] =~ /$namn/i) || ($data[1] =~ /$epost/i) || ($data[2] =~ /$hemsida/i) || ($data[3] =~ /$intresse/i)) {
# resultat
$raknare++;
}
}
Sökningen gav: $raknare träffar.
jakobMedlem sedan aug. 200017 inlägg Hej,
jag tror att du ska slänga in en /g dvs
if (($data[0] =~ /$namn/ig)
då söker den igenom hela raden istället för att sluta vid första träffen. Tror jag. Rätta mig om jag har fel.
/ Jakob