MAP

map BLOCK LIST
map EXPR,LIST

Evaluates the BLOCK or EXPR for each element of LIST (locally setting $_ to each element) and returns the list value composed of the results of each such evaluation. Evaluates BLOCK or EXPR in a list context, so each element of LIST may produce zero, one, or more elements in the returned value.

@chars = map(chr, @nums);

translates a list of numbers to the corresponding characters. And

%hash = map {&key($_), $_} @array;

is just a funny way to write

%hash = (); foreach $_ (@array) { $hash{&key($_)} = $_; }

Back to functions