As we've seen, one operator that can return undef is the line-input operator, <STDIN>. 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 condition. 1 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
Next: Exercises