Perl 101 (Part 4) - Mind Games - Die! Die! Die! (
Page 5 of 10 )
It's
strange but true - an incorrectly opened file handle in Perl fails to generate
any warnings at all. So, if you specify a file read, but the file doesn't exist,
the file handle will remain empty and you'll be left scratching your head and
wondering why you're not getting the output you expected. And so, in this
section, we'll be showing you how to trap such an error and generate an
appropriate warning.
Let's go back to our first example and add a line of
code:
#!/usr/bin/perl
# open file and define a handle for it
open(MIND,"thoughts.txt") || die "Unable to open file!\n";
# print data from handle
print <MIND>;
# close file when done
close(MIND);
# display message when done
print "Done!\n";
The die() function above is frequently used in situations
which require the program to exit when it encounters a fatal error - in this
case, if it's unable to find the required file.
If you ran this program
yourself after removing the file "thoughts.txt", this is what you would see:
Unable to open file!
Obviously, this works even when writing to a file:
#!/usr/bin/perl
# open file for writing
open(BRAINWASH,">wash.txt") || die "Cannot write to file!\n";
# print some data to it
print BRAINWASH "You will leave your home and family, sign over all your
money to me, and come to live with forty-six other slaves in a tent until I
decide otherwise. You will obey my every whim. You will address me as The
Great One, or informally as Your Greatness.\n";
# close file when done
close (BRAINWASH);
This article copyright Melonfire
2000. All rights reserved.