$xNeTworKx: Seltsames Verhalten bei reg.Expr.

Beitrag lesen

Hallo,
Hab ein Problem mit regulären Ausdrücken.
Ich lese eien Reihe von Files ein, und vergleiche eine Eingabe, ob diese schon mal in einem der Files vorkommt:

opendir(DIR,'users') or die "Cant open directory of users : $! \nPlease send a mail to $mailadmin to report this error\n";
  while (defined($_ = readdir(DIR)))   {
    if ($_ =~ /^\d+?.cgi$/)   {
    open(FILE,"users/$_") or die "An error occured with $_ : $!\nPlease contact $mailadmin to report this error.\n";
    flock FILE, 2;
    local $/;
    my $input = <FILE>;
    close FILE;
    encode_entities($name);
      if ($input =~ /<name>$name</name>/i)    {
      $$error = 1;
      $$nameerror = 'Der Name existiert bereits !';
      }
    }
 }
closedir DIR;

In den Files kommt Fritzi, Toni und <xNeT//orKx> vor. Der Ausdruck erkennt Fritzi, Toni, (befinden sich auf in dem Files) aber <xNeT//orKx> nicht. Deswegen hab ich auch oben encode_entities($name) gesetzt, da ja <xNeT//orKx> nicht dasselbe wie <xNeT//orKx> ist. Wenn ich zwischen <name> und </name> aber <xNeT\/\/orKx> zur Probe eingebe, erkennt er <xNeT//orKx> im File dann auch.
Wie kann ich es hinbringen, dass die Eingabe <xNeT//orKx> auf <xNeT//orKx> im File matched. Mit encode_entities($name) geht es schon mal nicht, aber warum? Wenn ich <xNeT//orKx> normalerweise über encode_entities($name) laufen lassen würde, kommt <xNeT//orKx> raus. Warum matched es hier aber nicht und wie kann ich das Problem lösen?

$xNeTworKx.

--
Mit Computern lösen wir Probleme, die wir ohne sie gar nicht hätten.