Thread Zuweisung klappt nur genau jedes 2. Mal: ...und ich weiß sogar warum (1 answers)
Opened by dukeofnukem at 2007-06-01 16:19

dukeofnukem
 2007-06-01 16:19
#77176 #77176
User since
2007-01-15
47 Artikel
BenutzerIn
[default_avatar]
Alohá!

Habe hier ein seltsames Problem, und nachdem ich mein posting schon fertig hatte, hab ich noch mal rumgetestet und RTFM betrieben und siehe da:

Quote
A (file)glob evaluates its (embedded) argument only when it is starting a new list. All values must be read before it will start over. In list context, this isn't important because you automatically get them all anyway. However, in scalar context the operator returns the next value each time it's called, or undef when the list has run out. As with filehandle reads, an automatic defined is generated when the glob occurs in the test part of a while , because legal glob returns (e.g. a file called 0) would otherwise terminate the loop. Again, undef is returned only once. So if you're expecting a single value from a glob, it is much better to say

($file) = <blurch*>;

than

$file = <blurch*>;

because the latter will alternate between returning a filename and returning false.


Also ist die Lösung klar, trotzdem bin ich voll reingelaufen. Gibt es Gute Gründe ™ für dieses Verhalten von glob?

Entnervt, aber erleichtert dachte ich mir, warum nicht andere von meinen Fehlern profitieren lassen.
Vielleicht wußte der eine oder andere genau das noch nicht...
drum&bass is a state of mind

View full thread Zuweisung klappt nur genau jedes 2. Mal: ...und ich weiß sogar warum