The both "visit" each element of a list
I was talking about their purpose.
The only way I can think of map on its own "transforming" a list is constructs like:
The whole purpose of map is to transform a list.
my @b = map uc, @a; # 1 to 1
my @b = map { $_ => uc($_) } @a; # 1 to N, const ratio
my @b = map { /^#/ ? () : $_ } @a; # 1 to N
But then it's the combination of map and the assign statement
No way. You don't have to assign the list to anything. You could pass it to join, for example.
print join '|', map uc, qw( a b c );