June 2008
Beginner
352 pages
11h 16m
English
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.