Befehl; (index($variable1,$variable2) >= 0 )
Hoscha
- perl
Hallo zusammen!
ich hätte da ein weiteres Problem (langsam werde ich zum Dauergast):
Was ist an diesem Code falsch?
for($a=0; $a<$laengebands; $a++) {
foreach(@configzeilen) {
if(index($bands[$a],$_) >=0) {
print "Die ConfigDatei enthält folgende Bands: $bands[$a]\n";
}
}
}
Zur Erklärung: Durch die äußere for-Schleife wird die foreach-Schleife für jedes Element der Liste @bands durchlaufen. In der foreach-Schleife wird dann das jeweilige Element von @bands mit jedem Element von @configzeilen verglichen. Wenn Teile davon im Element von @bands vorkommen, sollte eine Ausgabe erfolgen.
Diese kommt aber nicht am Bildschirm, obwohl einige Übereinstimmungen vorhanden sind.
Wenn ich es beispielsweise dahingehend abändere, dass es:
index($bands[$a],"Beispielstext")
heisst, klappts komischerweise.
Danke im Voraus,
Holger
Moin, moin!
Ich hätte da den Verdacht, daß $_ durch die if- oder index-Anweisung neu gesetzt wird. Aber das ließe sich durch das Ausgeben vor und nach der if-Anweisung verifizieren.
Verifizieren ist überhaupt ein gutes Stichwort: Laß Dir $bands[$a] und $_ ausgeben, um zu sehen, welche Werte überhaupt verwendet werden.
Dann bliebe da noch diese Variante, wenn $_ das Problem sein sollte:
...
foreach $configzeile (@configzeilen) {
if(index($bands[$a],$configzeile) >=0) {
...
Norbert
Hallo,
ich hätte da ein weiteres Problem (langsam werde ich zum Dauergast):
Was ist an diesem Code falsch?
for($a=0; $a<$laengebands; $a++) {
foreach(@configzeilen) {
if(index($bands[$a],$_) >=0) {
print "Die ConfigDatei enthält folgende Bands: $bands[$a]\n";
}
}
}
Hast Du berücksichtigt, daß beim Einlesen aus einer Datei auch die Zeilenumbrüche mit eingelesen werden? index() überprüft nun, ob $_ in $band[$a] vorkommt, allerdings auch eventuell vorhandene Zeilenumbrüche.
Grüße
Klaus