Hier erstmal das Script:
@Teile = split /-----------------------------.{9}/, $Daten;
Das hier ist die Stelle, auf die sich Deine Fragen beziehen.
Frage 1: Woher kommen die Striche am Anfang und was sagt die Nummernfolge aus ?
Die Kombination aus den Strichen und der "magic number" (die von dem Perl-Skript ganz lasch als "9 beliebige Zeichen" geparst wird - das ginge auch besser, der exakte Wert wird zusätzlich über eine Environmentvariable übergeben) ist das Trennzeichen zwischen zwei Abschnitten eines CGI-Multipart-Pakets.
Beim Datei-Upload muß ja ein Paket mit ganz verschiedenen Informationen übertragen werden, u. a. der Inhalt der Datei, aber auch der Dateiname und ggf. noch ein paar andere Dinge.
Um zwischen diesen Teilen zu trennen, wird die genannte Trennzeichenkette zwischen die Teile gesetzt. (Frag mich nicht, was passiert, wenn die im Datei-Inhalt selbst auch vorkommen sollte ...). Das Upload-Skript trennt jedenfalls an solchen Stellen per "split" das Multipart-Paket auf, und danach kann es die einzelnen Teile als Elemente eines Arrays ansprechen und separat bearbeiten.