From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

NAME

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

SYNOPSIS

## Via 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 ->
'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>