Just to nitpick a tad, your example will only work if
$cgi_script is a perl module using the
CGI module (or perhaps some other library that implements CGI's non-standard debugging input). CGI scripts don't read *any* arguments from ARGV, they read from
$ENV{QUERY_STRING} for GET type requests and STDIN for POST type requests.
So if you really wanted to use system, you would probably want something like:
#assuming $cgi_script and @args
$ENV{QUERY_STRING}=join'&',@args;
my $resp = `$cgi_script`;