---
title: "Problem med sökning."
type: "forum-thread"
url: "https://www.webforum.nu/amne/perl-ruby/62975-problem-med-sökning"
topic: "Perl & Ruby"
topic_url: "https://www.webforum.nu/amne/perl-ruby"
author: "Kent"
published: "2002-12-23T21:17:24.000Z"
updated: "2002-12-30T15:03:33.000Z"
replies: 3
views: 269
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/perl-ruby/62975-problem-med-sökning"
---

# Problem med sökning.

## #1 — Kent, 2002-12-23T21:17Z

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.

Permalänk: https://www.webforum.nu/p/62975

## #2 — Peter_B, 2002-12-23T22:11Z

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?

Permalänk: https://www.webforum.nu/p/893716

## #3 — Kent, 2002-12-24T09:34Z

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.

Permalänk: https://www.webforum.nu/p/893816

## #4 — jakob, 2002-12-30T15:03Z

Hej, 

jag tror att du ska slänga in en /g dvs

if (($data\[0\] =\~ /$namn/i**g**)

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

Permalänk: https://www.webforum.nu/p/896252

---

Tråden på webben: https://www.webforum.nu/amne/perl-ruby/62975-problem-med-sökning
