Da gibt es exec() und system(): exec() macht den Aufruf (startet mail.pl) und beendet das laufende Script sofort. Bei system() wird der Aufruf ausgefuehrt, gewartet, bis es fertig ist, und dann beim Code weitergemacht.
Den Aufruf kannst du dann z.B. so erledigen:
system "/usr/local/bin/perl mail.pl $Absender $Empfaenger $msg";Damit wird mail.pl mit dem Perl-Interpreter (von /usr/local/bin) gestartet und die Argumente $Absender, $Empfaenger und $msg uebergeben. Diese Argumente kannst du in mail.pl holen mit dem Array @ARGV.
Was sich auch noch zu erwähnen ist, ist fork. Damit kann man ein Programm starten, und es läuft dann sozusagen im Hintergrund, und das eigene Script läuft zur gleichen Zeit auch noch weiter. Damit kann man sogar miese Timeouteinstellungen von Webservern auf unendlich Timeout ueberschreiben.