foreach Schleife beenden
|
Seitenanfang |
| Hallo, ich prüfe den Inhalt eines Arrays, und möchte die Schleife dann beenden, wenn mind. ein Inhalt übereinstimmt. @whitelist = ('x','y','z'); foreach $white(@whitelist) { if ($inhalt =~ /$white/) { $ausgabe = "OK, enthalten" } else { $ausgabe ="nicht OK"; } } Im Moment prüft er das ganze Array und gibt dann das Ergebnis mit der Prüfung 'z' aus. Vielen Dank
Datum: 02.12.2006-13:55

|
re: foreach Schleife beenden
|
Seitenanfang |
| Da empfehle ich dir eine Do-While-Schleife: do{ ANWEISUNGEN }while( BEDINGUNG ); Weiterhin bietet Perl dir den last-Befehl, mit dem man Schleifen vorzeitig benden kann.
Datum: 02.12.2006-18:00

|
re: foreach Schleife beenden
|
Seitenanfang |
| Vielen Dank
Datum: 02.12.2006-18:04

|
re: foreach Schleife beenden
|
Seitenanfang |
wenn in @whitelist ("ok") steht und in $item "boeser inhalt ok noch mehr boeser inhalt", dann sagt dein code trotzdem, $item ist ok. ich vermute, dass ist nicht, was du moechtest. du musst die regex noch verankern, mit ^ und \z.bei perl-community gibt es ein paar perldocs in deutsch, stoeber dort einfach mal ein bisschen.
Datum: 03.12.2006-11:38

|
re: foreach Schleife beenden
|
Seitenanfang |
aeh, statt $item meine ich natuerlich $inhalt. schade, dass man seine eigenen postings nicht mehr editieren kann.
Datum: 03.12.2006-11:39

|
re: foreach Schleife beenden
|
Seitenanfang |
| danke für eure Antworten, ahbe das Problem folgendermassen gelöst: $ausgabe = „nicht OK“; foreach $white(@whitelist) { if ($inhalt =~ /\<a href=\"$white\"/) { $ausgabe = "OK"; } }
Datum: 03.12.2006-11:47

|