- NAME
- SYNOPSIS
- DESCRIPTION
- METHODS
  - _search_module_tree( type => TYPE, allow => \@regexes, [data => \@previous_results ] )
  - _search_author_tree( type => TYPE, allow => \@regexex, [data => \@previous_results ] )
  - _all_installed()

# NAME

CPANPLUS::Internals::Search - internals for searching for modules

# SYNOPSIS

        my $aref = $cpan->_search_module_tree(
                            type    => 'package',
                            allow   => [qr/DBI/],
                        );

        my $aref = $cpan->_search_author_tree(
                            type    => 'cpanid',
                            data    => \@old_results,
                            verbose => 1,
                            allow   => [qw|KANE AUTRIJUS|],
                        );

        my $aref = $cpan->_all_installed( );

# DESCRIPTION

The functions in this module are designed to find module(objects) based on certain criteria and return them.

# METHODS

## _search_module_tree( type => TYPE, allow => \@regexes, [data => \@previous_results ] )

Searches the moduletree for module objects matching the criteria you specify. Returns an array ref of module objects on success, and false on failure.

It takes the following arguments:

type

  This can be any of the accessors for the `CPANPLUS::Module` objects. This is a required argument.

allow

  A set of rules, or more precisely, a list of regexes (via `qr//` or plain strings), that the `type` must adhere too. You can specify as many as you like, and it will be treated as an `OR` search. For an `AND` search, see the `data` argument.

  This is a required argument.

data

  An arrayref of previous search results. This is the way to do an `AND` search -- `_search_module_tree` will only search the module objects specified in `data` if provided, rather than the moduletree itself.

## _search_author_tree( type => TYPE, allow => \@regexex, [data => \@previous_results ] )

Searches the authortree for author objects matching the criteria you specify. Returns an array ref of author objects on success, and false on failure.

It takes the following arguments:

type

  This can be any of the accessors for the `CPANPLUS::Module::Author` objects. This is a required argument.

allow

  A set of rules, or more precisely, a list of regexes (via `qr//` or plain strings), that the `type` must adhere too. You can specify as many as you like, and it will be treated as an `OR` search. For an `AND` search, see the `data` argument.

  This is a required argument.

data

  An arrayref of previous search results. This is the way to do an `and` search -- `_search_author_tree` will only search the author objects specified in `data` if provided, rather than the authortree itself.

## _all_installed()

This function returns an array ref of module objects of modules that are installed on this system.