Undefines the value of expr, which must
be an lvalue. Use only on a scalar value, an entire array or hash, or a
subroutine name (using the
& prefix). Any storage
associated with the object will be recovered for reuse (though not returned to
the system, for most versions of Unix). The
will probably not do what you expect on most
The function always returns the undefined value.
This is useful because you can omit the expr, in which case
nothing gets undefined, but you still get an undefined value that you
could, for instance, return from a subroutine to indicate an error.
You may use
undef as a placeholder on the
left side of a list assignment, in which case the corresponding value
from the right side is simply discarded. Apart from that, you may not
undef as an lvalue.