Not sure what more details I can provide... The code does this:
use IPC::Run qw( run );
my $in = "some text input to script";
my ($out, $err);
run([ 'foo' ], \$in, \$out, \$err) or throw "run(foo): $err : $?";
If the "foo" script has execute permissions set, I can run foo directly and also via the code above.
If the "foo" script does not have execute permissions set, but I am still allowed execute via ACLs, I can run foo directly but the code above fails with a "permission denied" error.
As I mentioned previously, IPC::Run is testing the script with "-x foo", which does not pay attention to ACLs, and is returning "permission denied" without trying to run the script. So I am hoping there is either some trick I can play with IPC::Run to make it pay attention to ACLs, or some similar module that I can use instead that pays attention to ACLs.