Have you thought about using eval for error checking on the require? So your code would become something like:
my $PREFIX = '/home/xpost-scripts'; my %xscripts = ( site_a => 'a_funct', site_b => 'b_funct' ); foreach (keys(%xscripts)) { eval { require ("$PREFIX/$_") }; print STDERR "Warning: File $_ had errors: '$@'\n" if($@); } # ... Here, we grabbed the Function name from a DB query. It's a hash +for this example. foreach (keys(%xscripts)) { if (defined($xscripts{$_}) && ref($xscripts{$_}) && UNIVERSIAL::isa( +$xscripts{$_}, 'CODE')) { &$xscripts{$_}("A parameter"); } else { print STDERR "Error. Could not call function $xscripts{$_}\n"; } }
Don't know if this would work 100% for your needs but it's a thought.
bbfu
Seasons don't fear The Reaper.
Nor do the wind, the sun, and the rain.
We can be like they are.
In reply to (bbfu) (eval) Re: Dynamically loading perl files (and calling dynamic functions) with error checking.
by bbfu
in thread Dynamically loading perl files (and calling dynamic functions) with error checking.
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |