Note that when this command is called in a function then the local variable is undefined and the caller variable passed by reference is not changed. Therefore
sub xx(a) undef a end sub q = 1 xx q print q
will print 1 and not undef.
On the other hand
sub xx(a) a = undef end sub q = 1 xx q print q
does print undef.