oracular (3) List::Objects::WithUtils::Role::Array::WithJunctions.3pm.gz

Provided by: liblist-objects-withutils-perl_2.028003-5_all bug

NAME

       List::Objects::WithUtils::Role::Array::WithJunctions - Add junctions

SYNOPSIS

         ## Via List::Objects::WithUtils::Array ->
         use List::Objects::WithUtils 'array';

         my $array = array(qw/ a b c /);

         if ( $array->any_items eq 'b' ) {
           ...
         }

         if ( $array->all_items eq 'a' ) {
           ...
         }

         if ( $array->any_items == qr/^b/ ) {
           ...
         }

         ## As a Role ->
         use Role::Tiny::With;
         with 'List::Objects::WithUtils::Role::Array',
              'List::Objects::WithUtils::Role::Array::WithJunctions';

DESCRIPTION

       These methods supply overloaded List::Objects::WithUtils::Array::Junction objects that can be compared
       with values using normal Perl comparison operators.

       Regular expressions can be matched by providing a "qr//" regular expression object to the "==" or "!="
       operators.

       There is no support for the "~~" experimental smart-match operator.

       The junction objects returned are subclasses of List::Objects::WithUtils::Array, allowing manipulation of
       junctions (of varying degrees of sanity) -- a simple case might be generating a new junction out of an
       old junction:

         my $list = array(3, 4, 5);
         if ( (my $anyof = $list->any_items) > 2 ) {
           my $incr = $anyof->map(sub { $_[0] + 1 })->all_items;
           if ( $incr > 6 ) {
             # ...
           }
           # Drop junction magic again:
           my $plain = array( $incr->all );
         }

   any_items
       Returns the overloaded any object for the current array; a comparison is true if any items in the array
       satisfy the condition.

   all_items
       Returns the overloaded all object for the current array; a comparison is true only if all items in the
       array satisfy the condition.

AUTHOR

       Jon Portnoy <avenj@cobaltirc.org>

perl v5.38.2                                       2024List::Objects::WithUtils::Role::Array::WithJunctions(3pm)