undef is the "unknown value" of Perl. undef is the initial value of scalar variables.

See undef explained in a video and how to return nothing (or undef) from a function in Perl?

It is also a function that can be used to set variables to be undefined. See undef on Perl arrays and hashes.

You can tell apart variables that are undef and that are not by using the defined function.