I want to write an iterator that traverses a data-structure:
my $iter = getIter( $structRef ); while( my $next = $iter->() ) { ## use $next; }
Problem: elements of the data structure can legitimately return undef. And 0. And -1. And ''. And any other value a scalar can hold.
It is an age old problem. As soon as you define [sic] an undefined value -- or null or nil or bottom -- it become useful to be able to store it.
And once you can store it, it is no longer useful for detecting exceptional, non-error conditions.
What is needed is a 'nothing' place-holder.
A non-storable, non-value that if detected in a while or for loop causes the loop to terminate -- without error.
But if you try to assign it to any variable, terminates with an exception.
|
|---|