List::Objects::WithUtils::Array::Junction - Lightweight junction classes


  # See List::Objects::WithUtils::Role::Array::WithJunctions


These are light-weight junction objects covering most of the functionality provided by Syntax::Keyword::Junction. They provide the objects created by the all_items and any_items methods defined by List::Objects::WithUtils::Role::Array::WithJunctions.

Only the junction types used by List::Objects::WithUtils ('any' and 'all') are implemented; nothing is exported. The ~~ smart-match operator is not supported. See Syntax::Keyword::Junction if you were looking for a stand-alone implementation with more features.

The junction objects produced are subclasses of List::Objects::WithUtils::Array.

See List::Objects::WithUtils::Role::Array::WithJunctions for usage details.


My original goal was to get Sub::Exporter out of the List::Objects::WithUtils dependency tree; that one came along with Syntax::Keyword::Junction.

Perl6::Junction would have done that for me. Unfortunately, that comes with some unresolved RT bugs right now that are reasonably annoying (especially warnings under perl-5.18.x).


This code is originally derived from Perl6::Junction by way of Syntax::Keyword::Junction; the original author is Carl Franks, based on the Perl6 design documentation.

Adapted to List::Objects::WithUtils by Jon Portnoy <>