New module: Debug_Messages
Austin Schutz
tex at off.org
Mon Dec 4 15:06:25 CST 2000
Well I can tell from the number of downloads that people have real
work to do. :-)
Anyway, I had an idea last weekend that I added to the module in the
form of the following:
A try() sub that allows you to do error handling quickly, e.g.:
sub drive_to_town() {
try(get_in_car(), "Can't get in car" ) || return undef;
try(start_car(), "Can't start car") || return undef;
try(drive_car(), "Can't drive car") || return undef;
}
sub(get_in_car()) {
try(unlock_car_door(), "Can't unlock car" ) || return undef;
try(sit_in_car(),"Can't sit in car" ) || return undef;
}
sub sit_in_car() {
try( $drivers_seat, "There's no drivers seat" ) || return undef;
}
undef($drivers_seat); # Take it out to reupholster it
unless (defined(drive_to_town()){ eprint(); }
might generate the following stack trace:
test.pl line 6, package main: main::drive_to_town():
Can't get in car
test.pl line 9, package main: main::get_in_car():
Can't sit in car
test.pl line 12, package main: main::sit_in_car():
There's no drivers seat
Anyway, I always spend about half of my time writing perl code
dealing with error conditions, so I think it's handy.
Austin
TIMTOWTDI
More information about the Pdx-pm-list
mailing list