The Undefined Value
What
happens if you use a scalar
variable before you give it a value?
Nothing serious, and definitely nothing fatal. Variables have the
undef
value before they are first assigned. This
value looks like a zero when used as a number, or the zero-length
empty string when used as a string. You will get a warning when
running under Perl’s -w
switch, though,
which is a good way to catch programming errors.
Many operators return undef
when the arguments are out of range or don’t make sense. If you
don’t do anything special, you’ll get a zero or a null
string without major consequences. In practice, this scenario is
hardly a problem.
One operation we’ve seen that returns undef
under certain circumstances is
<STDIN>
. Normally, this returns
the next line that was read; however, if there are no more lines to
read, (such as when you type CTRL-Z at the terminal, or when a file
has no more data),
<STDIN>
returns undef
as a
value. In Chapter 6, we’ll see how to test
for this and take special action when there is no more data available
to read.
Get Learning Perl on Win32 Systems now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.