List::Objects::WithUtils::Role::Array::WithJunctions(3pm) | User Contributed Perl Documentation | List::Objects::WithUtils::Role::Array::WithJunctions(3pm) |
List::Objects::WithUtils::Role::Array::WithJunctions - Add junctions
## 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';
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 ); }
Returns the overloaded any object for the current array; a comparison is true if any items in the array satisfy the condition.
Returns the overloaded all object for the current array; a comparison is true only if all items in the array satisfy the condition.
Jon Portnoy <avenj@cobaltirc.org>
2022-09-27 | perl v5.34.0 |