pairmap#

Run a block for each pair and concatenate the results.

Synopsis#

my @out   = pairmap { BLOCK } @kvlist;
my $count = pairmap { BLOCK } @kvlist;   # scalar context

For every pair the block is called in list context with $a set to the key and $b set to the value; its results are appended to the output list in order.

What you get back#

In list context, the concatenation of everything every invocation of the block returned. In scalar context, the number of items that would have been returned in list context. $a and $b are aliased to the original list elements — modifications in the block are visible to the caller.

Examples#

my @lines = pairmap { "The key $a has value $b" } %hash;
my @flat  = pairmap { ( $a, uc $b ) } %h;   # values upper-cased
my @pairs = pairmap { [ $a, $b ] } %h;      # equivalent to `pairs`

Differences from upstream#

Fully compatible with upstream.

See also#

  • pairgrep — filter pairs by a predicate.

  • pairfirst — stop at the first matching pair.

  • pairs — bundle pairs into blessed arrayrefs.