in reply to Re: Re: Re: Re: Starting foreach at an arbitrary position
in thread Starting foreach at an arbitrary position
MarkM writes
The array remains referenced within the iterator subroutine. Therefore, the memory being used by the array remains referenced.
Proving what? It would be somewhat stupid to try and iterate an array that no longer existed.
MarkM writes:
1000000 scalars, even as simple integers, take up quite a bit of space. I estimate that 1000000 integer scalars take up at least 10 Mbytes of store.
... but it's just test data.
MarkM writes:
Using the range operator for very large ranges, outside of the "for (1 .. 1000000) {" case is extremely expensive.
...but it's just test data.
Obviously, noone would use an array of a million sequential integers and an iterator to generate 5 sequential integers from 500001 to 500005--or indeed any sequential set of integers in a real application. The only purpose of the consruction of the array is as a placeholder for "an array of abitrary data" in the test program.
Any real application would already have the data that it wished to iterate so it would not have to build it. Therefore, your point has no bearing whatsoever on the use of the iterator the code served to demonstrate. Is that so hard to see?
Examine what is said, not who speaks.
The 7th Rule of perl club is -- pearl clubs are easily damaged. Use a diamond club instead.
|
|---|