in reply to Re: map and undef - odd behaviour with an array of arrays
in thread map and undef - odd behaviour with an array of arrays

But why did map{undef $_}(@x) behave differently than undef @x?

Edit to add - oh, I'm being stupid - it's undefining each element rather than @x. When I was testing this, for some reason I concluded that perl -e "@x=qw(a);map{undef $_}(@x);print 1 if defined @x;" didn't print 1 (but it does).

One of those days...

map{$a=1-$_/10;map{$d=$a;$e=$b=$_/20-2;map{($d,$e)=(2*$d*$e+$a,$e**2 -$d**2+$b);$c=$d**2+$e**2>4?$d=8:_}1..50;print$c}0..59;print$/}0..20
Tom Melly, pm (at) cursingmaggot (stop) co (stop) uk

Replies are listed 'Best First'.
Re^3: map and undef - odd behaviour with an array of arrays
by eyepopslikeamosquito (Archbishop) on Dec 22, 2012 at 08:53 UTC

    But why did map{undef $_}(@x) behave differently than undef @x?
    "undef @x" empties the array while "map{undef $_}@x" sets each element in the array to the value undef. Since your array had one element in it, that element was not deleted, rather its value was set to undef.