my $PREFIX = '/home/xpost-scripts'; my %xscripts = ( site_a => 'a_funct', site_b => 'b_funct' ); foreach (keys(%xscripts)) { if (!system("perl -cw $PREFIX/$_")) { # perl -cw exits with '0' if no errors. require ("$PREFIX/$_"); } else { print STDERR "Warning: File $_ had errors!\n"; } } # ... Here, we grabbed the Function name from a DB query. It's a hash for this example. foreach (keys(%xscripts)) { if (defined($xscripts{$_})) { &$xscripts{$_}("A parameter"); } else { print STDERR "Error. Could not call function $xscripts{$_}\n"; } }