A stored array index has a natural successor, but a hash key hasn't.°
Using each is accessing an internal iterator "cursor", but can't be used multiple times with the same hash.
The only solution which comes to mind is to initially cache the keys into an array and to go by index. But this static copy defies the idea of a dynamic iterator.
Any better idea?
Tie::Hash requires us to implement a NEXTKEY this, lastkey method. But there doesn't seem to be a way to access this API with a native hash.
Is (keys %hash)[$idx++] optimized to be performant, or will it create a long list of keys to be thrown away?
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
°) well there is an internal order but this is a) kept secret and b) shuffled with every new run of perl
In reply to Re^3: An iterator for (not "iterating") a recursive data structure. (index into keys?)
by LanX
in thread An iterator for (not "iterating") a recursive data structure.
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |