in reply to problem in using eval strings

My guess is that the line:

my $call = ' $jobs->$func ($arg) ' ;

Is not interpolating (expanding) the $arg variable. Use double quotes and escape the dollar signs, like so:

my $call = " \$jobs->\$func ($arg) " ;