ist es möglich an ein Unterprogramm in einem Perl-Modul einen im Hauptprogramm erzeugten Socket zu übergeben?
Wahrscheinlich schon (habe ich noch nicht gemacht). Ich vermute, ein Socket-Handle ist intern eine Art record-Struktur, würde also bei einer Parameterübergabe nicht seinen Wert, sondern seine Adresse zu übergeben versuchen.
Bzw. ihn in einer "globalen" Variablen (habe was von "use vars" gelesen ???) speichern.
Das geht. Wenn Du eine modul-globale Variable x im Modul m hast, kannst Du sie in anderen Modulen als m::x ansprechen. (Mache ich auch selbst - ich habe beispielsweise einen Modul, der mir eine Parameterdatei einliest und als Hash speichert, und den Hasn sprechen andere Module an, weil sich hier eine Schnittstellendunktion nicht lohnt.)