The defined Function
The line-input operator <STDIN>
is one operator that can return undef. Normally, it will return a line of
text, but if there is no more input, such as at end-of-file, it returns
undef to signal this.[*] To tell whether a value is undef and not the empty string, use the
defined function, which
returns false for undef, and true for
everything else:
$madonna = <STDIN>;
if ( defined($madonna) ) {
print "The input was $madonna";
} else {
print "No input available!\n";
}If you’d like to make your own undef values, you can use the obscurely named
undef operator:
$madonna = undef; # As if it had never been touched
[*] Normally, there’s no “end-of-file” when the input comes from the keyboard, but input may have been redirected to come from a file. Or the user may have pressed the key that the system recognizes to indicate end-of-file.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access