Book HomeLearning Perl, 3rd EditionSearch this book

2.12. The defined Function

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.[66] 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:

[66]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.

$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


Library Navigation Links

Copyright © 2002 O'Reilly & Associates. All rights reserved.