in reply to Re: CPAN Module Naming Suggestions.
in thread CPAN Module Naming Suggestions.

Thanks for the suggestion. I was thinking Array::Findone myeself.

While there is a findfirst function, the difference is findone knows where it is within an array, so on subsequent calls it gives subsequent elements. "sort-of" like a closure without the closure. Basically it knows from the source code context what array you are using.

# It's does something similar to this. sub elementer(&\@;$$) { my ($coderef,$arrayref,$start_index,$end_index) = @_; $start_index = 0 unless $start_index; $end_index = $#{$arrayref} unless $end_index; return sub { return if $start_index > $end_index; for (; $start_index <= $end_index;$start_index++){ $_ = $arrayref->[$start_index]; if (&$coderef){ $start_index++; return wantarray ? ($_ ,($start_index -1 ) ) : $_ +; } } } } my @nums = (1..1000); my $find = elementer { "$_" =~m/5$/ } @nums ; while (my $found = $find->() ) { # ... do something with each match print $found,"\n"; }


-Lee

"To be civilized is to deny one's nature."

Replies are listed 'Best First'.
Re: Re: Re: CPAN Module Naming Suggestions.
by broquaint (Abbot) on Mar 04, 2002 at 14:25 UTC
    Hmmmm, maybe it's name should note it's iterating ability, such as Array::Iterate::Conditional or Array::Iterate::Search. I think they would give a clearer idea of what the module will do.
    HTH

    broquaint