or download this
A glob evaluates its (embedded) argument only when it is
starting a new list. All values must be read before it
will start over. In a list context this isn't important,
...
context, however, the operator returns the next value each
time it is called, or a undef value if you've just run
out.