andy : variable in regulären ausdruck...

Beitrag lesen

Hallo Siechfred,

vielen Dank für die Hilfe aber trotzdem es funktioniert nicht.

$datei1 enthält ja folgende liste:

eintrag1
eintrag2
eintrag3
...
..
.

my %liste;

open(DATEI, $datei1) or die $!;
flock(DATEI, LOCK_SH);
while(<DATEI>) {
  $liste{chomp($_)} = "";
}
close(DATEI);

Wenn ich hier alle schlüsseln printen lasse kommt ja nichts???
my @schluessel = keys(%liste)

foreach (@schluessel){

print "$liste{$schluessel)\t $schluessel\n";

}

$datei2 enthält ja folgende liste:

1 http://www.fdfdfd.de/dfd/ eintrag1
2 http://www.fdfdfd.de/dfd/ eintrag133
2 http://www.fdfdfd.de/dfd/test/2.html eintrag1

Im nächsten Schritt würde ich die Zeilen von Datei2 einlesen, splitten und mit den Hash-Schlüsseln vergleichen:

open(DATEI, $datei2) or die $!;
flock(DATEI, LOCK_SH);
while(<DATEI>) {
  chomp($_);
  my @dummy = split(/\s/, $_);
  if(exists $liste{$dummy[2]}) {
    $liste{$dummy[2]} = $dummy[1];
  }
}
close(DATEI);

hier ist das Problem: wenn es einen schlüssel gibt (bsp. hier eintrag1) der schon öfters vorkommt wird dessen alter wert einfach mit dem neuen Wert überschrieben! (hier wäre das Ergebniss $liste{'eintrag1'} = 'http://www.fdfdfd.de/dfd/test/2.html' und 'http://www.fdfdfd.de/dfd/' wäre verloren gegangen.
Das will ich aber nich, Ich möchte allte Werte haben.

Ich habe trotzdem vielen Versuchen noch kein Lösung gefunden.
Können Sie mich vielleicht weiter helfen?

vielen Dank,

Gruss, Andy