in reply to Dynamically loading perl files (and calling dynamic functions) with error checking.

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.

  • Comment on (bbfu) (eval) Re: Dynamically loading perl files (and calling dynamic functions) with error checking.
  • Download Code