or download this
When you use an iterator in separate parts of your program, or as an a
+rgument to the various iterator functions, you do not get a copy of t
+he iterator's stream of values.
...
my $value = $it_two->value();
my $whoops = $it_one->value;
Here, some_iterator_transformation takes an iterator as an argument, a
+nd returns an iterator as a result. When a value is fetched from $it_
+two, it internally grabs a value from $it_one (and presumably transfo
+rms it somehow). If you then grab a value from $it_one, you'll get it
+s second value (or third, or whatever, depending on how many values $
+it_two grabbed), not the first.