in reply to Re: Index or iterate - your choice
in thread Index or iterate - your choice

where there are so many list items or the items are so big, that they would use too much memory to store in an array
Perhaps tie-ing is another good option for this. Then you can get all the semantics of an array for free! (from the user perspective at least)

-Thomas
"Excuse me for butting in, but I'm interrupt-driven..."

Replies are listed 'Best First'.
Re^3: Index or iterate - your choice
by tobyink (Canon) on Jan 27, 2021 at 23:17 UTC

    I did consider including that, but by providing a tied array, you're kind of encouraging end users to treat it as any old array.

    So they might not consider that doing something like:

    foreach my $item ( reverse @array ) { ... }

    Is going to impact performance way more than they might expect.

    If it's exposed as an iterator, then it encourages them to access items in a one-at-a-time sequential fashion. They still can slurp it all into an array, but they can't blame you when that eats up all their memory.

    Not saying it's never a good idea, but situations where it is aren't going to be that common.