Schrift
[thread]496[/thread]

foreach - HILFE:Wo liegt denn der Hund begraben?!



<< >> 7 Einträge, 1 Seite
bamboocha
 2005-05-25 11:22
#4969 #4969
User since
2005-04-04
13 Artikel
BenutzerIn
[default_avatar]
Hi leutz
bin grad dran wieder einmal ein wenig Perl in eine HTML-Seite ein zu betten (--> embedPerl).

Mein Problem dabei ist, dass die foreach-schleife sofort aussteigt, sobald die letzte Varialbe aufgerufen wurde. die foreach-schleife bzw. deren Inhalt wird nicht komplett ausgeführt....aber WARUM??!!

der Code (Schnippsel)
($dat->[1] ist ein Array und $k ein Array des Bandes @selected_speech)

Code: (dl )
1
2
3
4
5
6
7
8
9
[$ foreach $k @selected_speech $]


[$ if $dat->[1] eq $k $]
checked
[$ endif $]


[$ endforeach $]


das Skript stoppt sofort, sobald das letzte $k aufgerufen worden ist (also führt den Code in der If-Schleif nicht mehr aus obwohl dieser True ist!!)  --> Skript stoppt in der IF-Abfrage-Zeile?!...
Wenn ich sonstigen Code vor dem Aufruf der If-Abfrage (bzw. der variable $k) mache, wird dieser anstandslos ausgeführt)....ICH verstehs nicht :-( !!

Kann mir hier jemand weiter helfen, denn sonst schmeiß ich mich bald hinter den zug....
schönen Tag noch

ich



#####################
# Ergänzung
####################

HI Leutz,

vielleicht noch eine kleine Ergänzung dazu:

Die Foreach-Schleife steht in einer while-Schleife

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
[$ while $dat = $sth_sd -> fetchrow_arrayref $]

[$ foreach $k @selected_speech $]

[$ if $dat->[1] eq $k $]
checked
[$ endif $]


[$ endforeach $]

[$ endwhile $]


thx schon mal,

ich\n\n

<!--EDIT|bamboocha|1117007375-->
bamboocha
 2005-05-25 13:57
#4970 #4970
User since
2005-04-04
13 Artikel
BenutzerIn
[default_avatar]
kann es vielleicht sein, dass es sein, dass die Probleme durch die Verschachtelung enstehen? Hat jemand Erfahrung mit dem Grad der Verschachtelungen, ab wann es Probleme gibt, oder was man so machen sollte?

--> mein Stand: die letzte IF-Abfrage wird ums verrecken nicht ausgeführt warum auch nimmer...mir immer noch unerklärlich (ist das vielleicht ein wunder)

hat auch mal das Band 8@selected_speech ) mit reverse Umgekeht, so dass der letzte Wert zu erst in die IF-Schleife kommt, jedoch wird dieser (obwohl es in diesem Fall der erste Wert ist!!!) nicht abgearbeitet...ich flippe aus.....:angry:

für hilfe wäre ich sehr dankbar und im hohen grade entzückt, cu

ich
Crian
 2005-05-25 14:15
#4971 #4971
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Was auch immer Du da treibst, Perl ist das nicht.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
bamboocha
 2005-05-25 15:12
#4972 #4972
User since
2005-04-04
13 Artikel
BenutzerIn
[default_avatar]
@Crian:
nicht ganz richtig. es ist eine Form von Perl => so called embedPerl
Crian
 2005-05-25 17:38
#4973 #4973
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Was hat es dann mit Perl/CGI zu tun? Naja egal. Ohne dass Du mehr dazu sagst wird wohl niemand helfen können. Allerdings hab ich eh keine Ahnung von dieser Perlvariante.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2005-05-25 18:13
#4974 #4974
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
vielleicht mal auf http://www.perlmonks.org/ fragen? da kennt sich vermutlich eher damit jemand aus; oder sonst dem Autor eine Mail schreiben? Wenn ich mich nicht irre und nicht emb mit embed etc. verwechsle, spricht er sogar deutsch...
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
Relais
 2005-05-25 19:19
#4975 #4975
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=bamboocha,25.05.2005, 09:22]der Code (Schnippsel)
($dat->[1] ist ein Array und $k ein Array des Bandes @selected_speech)

Code: (dl )
1
2
3
4
5
6
7
8
9
[$ foreach $k @selected_speech $]


[$ if $dat->[1] eq $k $]
checked
[$ endif $]


[$ endforeach $]


das Skript stoppt sofort, sobald das letzte $k aufgerufen worden ist (also führt den Code in der If-Schleif nicht mehr aus obwohl dieser True ist!!) --> Skript stoppt in der IF-Abfrage-Zeile?!...

[...]

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
[$ while $dat = $sth_sd -> fetchrow_arrayref $]

[$ foreach $k @selected_speech $]

[$ if $dat->[1] eq $k $]
checked
[$ endif $]


[$ endforeach $]

[$ endwhile $]
[/quote]
$dat->[1] ist entweder ein Skalar oder ein Syntax-Error.
Genauer ist es das zweite Element eines Arrays, auf welche die Referenz $dat verweist. Wenn das erste gewünscht wird, muß es $dat->[0] heißen.

$k ist kein Array sondern ein Skalar, und das ist auch besser so, denn zwei Arrays mit eq vergleichen bringt selten das gewünschte Resultat.

@selected_speech ist ein Array und kein(e) "Band". Was verstehst Du unter dem Begriff "Band"?

Es gibt keine If-Schleifen, If leitet eine einfache Bedingung ein.

Was verstehst Du unter "stoppen" des Skripts?

Woher willst Du wissen, ob die If-Bedingung wahr ist? Wie hast Du das getestet?

Laut Doku muß es
Code: (dl )
[$ while ( $dat = $sth_sd -> fetchrow_arrayref ) $]
heißen.
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
<< >> 7 Einträge, 1 Seite



View all threads created 2005-05-25 11:22.