According to perldoc
http://perldoc.perl.org/functions/map.html
map should evaluate BLOCK in list context
Evaluates BLOCK or EXPR in list context
but I am wondering why in my example, sometimes it's LIST context, sometimes SCALAR.
print "A:";
print map { /(\S+)/g or die } qq{ab cd}; # prints "A:1" so evaluated i
+n scalar context
print "\n";
print "B:";
print map { /(\S+)/g } qq{ab cd}; # prints "B:abcd", means evaluated
+in list context
print "\n";
print "C:";
for (qq{ab cd}) {
print /(\S+)/g or die; # prints "C:abcd", list context again
}
print "\n";