package WWW::Extractor::Generic::Try;

use strict;
use vars qw(@ISA @EXPORT);

use Exporter;

@ISA = qw(Exporter);

@EXPORT = qw(try catch);

# simple try / catch

sub try (&@) {
    my ($try, $catch) = @_;
    my $val = eval { &$try };
    if ($@) {
	if ($catch) {
	    for ($@) {
		&$catch;
	    }
	}
	return;
    }
    return $val
}

sub catch (&) { $_[0] }

1
