ich habe es immer noch nicht kapiert.
wenn es wirklich nur um das einlesen eines parameters in script.pl geht:
aufruf: /script.pl?file=abc
use CGI;
my $cgi = CGI->new;
my $file = $cgi->param('file');
wenn du aber diese datei ausführen möchtest und dieser einen *weiteren* parameter übergeben willst, musst du den eben auch noch an die url anhängen und dem script per kommandozeile als parameter übergeben.
ich sehe das problem nicht.
aufruf: /script.pl?file=abc¶meter1=foo
use CGI;
my $cgi = CGI->new;
my $file = $cgi->param('file');
my $param1 = $cgi->param('parameter1');
exec($file, $param1);
aber wie gesagt, vorsicht, weil der aufrufer der url einen beliebigen pfad angeben kann! das solltest du auf jeden fall behandeln, am besten mit einer dispatch-tabelle.