Schrift
[thread]6319[/thread]

Vergleich: Ganz komisch....



<< >> 3 Einträge, 1 Seite
weismat
 2004-06-07 20:08
#83165 #83165
User since
2003-08-18
142 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
while ($more_replies eq "True")  {
 my $temp=$sync_api->receive();
 my $more_replies=deapi::find($temp, "more_replies");
 $result=$result.$temp;
 if ($more_replies eq "False") {
   print "only because of this\n";
   last;
 }
}

Kann mir jemand erklären, warum der Code nur mit dem if innen funktioniert? Ohne das if geht er weiterhin bei while in die Schlefe herein. Ich benutze Perl unter Windows, habe aber auch noch nicht probiert, ob Solaris einen Unterschied macht.
Ich verstehe es einfach nicht.\n\n

<!--EDIT|weismat|1086625129-->
Gast Gast
 2004-06-07 20:59
#83166 #83166
Code: (dl )
1
2
3
4
5
while ($more_replies eq "True")  {
 my $temp = $sync_api->receive();
 $more_replies = deapi::find($temp, "more_replies");
 $result .= $temp;
}


So sollte es eigentlich funktionieren ...
weil $more_replies ja offensichtlich bereits vor dem Eintritt in die While-Schleife deklariert war.
Taulmarill
 2004-06-08 11:18
#83167 #83167
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
das my ist das problem. damit ist die variable nur innerhalb der while schleife (genauer gesagt, innerhalb der geschweiften klammern) gültig.
ausserhalb davon wird anscheinend eine andere varibale mit selben namen verwendet.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
<< >> 3 Einträge, 1 Seite



View all threads created 2004-06-07 20:08.