in reply to Re: Help me decipher code containing map function
in thread Help me decipher code containing map function

map { $val .= sprintf("%02x",$_) } unpack "CCCCCC", $octetstr;

Nice example for map in void context. I wouldn't transform that into a full foreach loop, but use a statement modifier instead

$val .= sprintf("%02x",$_) for unpack "CCCCCC", $octetstr;

for the same reasons I wrote down elsewhere.

But then - regarding map in void context - all perl statements are executed for their side effect, and the computed value is discarded:

# result from map is discarded # side effect: $val is populated map { $val .= sprintf("%02x",$_) } unpack "CCCCCC", $octetstr; # result from print is discarded (1 if successful) # side effect: text appears on STDOUT or selected filehandle print "hello, world!\n"; # result from assignment is 42, again discarded # side effect: $value is populated $value = 42; # result from die is discarded (if any), print not done # side effect: well... print die;
perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'