a similar result can be attained changing the shell wrapper instead of the perl script that runs on the cluster nodes:
#!/usr/bin/bash
cd ~/some_dir
(perl mycode.pl $1 $2 > ~/some_out_dir/param_set$1.out.tmp
&& mv ~/some_out_dir/param_set$1.out)
|| touch ~/some_out_dir/param_set$1.fail
then, on the master you will have to poll from time to time to see if all the result files exist or if "fail" files are there, to requeue the jobs.
Though, it should be better ways to synchronize partial jobs over the cluster.