in reply to CPAN Module Naming Suggestions.

How about Array::FindOne, or Array::FindFirst, or if you're feeling verbose and in a trend-setting mood Array::Find::One. Personally I'd go with Array::FindOne, but think that Array::FindFirst may convey a more accurate idea of the module's purpose.
HTH

broquaint

Replies are listed 'Best First'.
Re: Re: CPAN Module Naming Suggestions.
by shotgunefx (Parson) on Mar 04, 2002 at 13:35 UTC
    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."
      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

Re x 2: CPAN Module Naming Suggestions.
by Sweeper (Pilgrim) on Mar 04, 2002 at 22:15 UTC
    or if you're feeling verbose and in a trend-setting mood Array::Find::One.

    For what it's worth, a few months ago, there was a discussion on the Date-Time mailing list, in which a few people disapproved of 3-level module names. I do not understand why, but if you encounter those people, maybe you'll have to stick with (for example) Array::FindOne.

      Thanks. I like Array::FindOne myself but I don't neccassarily think like other people. I prefer two levels unless there is a semantic reason like Net::Service::SomeService. Thanks for the feedback.


      -Lee

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