You are viewing the version of this documentation from Perl blead. This is a development version of Perl.
all BLOCK LIST

Evaluates the BLOCK for each element of the LIST (locally setting $_ to each element) and checks the truth of the result of that block. Returns true if every element makes the block yield true, or returns false if at least one element makes the block false.

As soon as any element makes the block yield false, then the result of this operator is determined. It will short-circuit in that case and not consider any further elements.

When used as a condition, this is similar to using grep to count that every value satisfies the condition, except for this short-circuit behaviour.

if( all { length $_ } @strings ) {
    say "Every string is non-empty";
}

is roughly equivalent to

if( @strings == grep { length $_ } @strings ) ...

This operator is only available if the all feature is enabled.

It is currently considered experimental, and will issue a compile-time warning in the category experimental::all unless that category is silenced.