Hallo,
Abgesehen von einem Syntax-Fehler bei '$tan =...' dürfte auch das fehlende Einbinden des IO::Socket-Moduls ein Problem darstellen.
Ach, da fehlte ja noch der Hinweis darauf, dass bei einem 'Internal server Error' sich deine ganze Aufmerksamkeit auf die Logfiles des Servers richten sollte, denn dort sind auch die Gründe zu finden, warum der Server den Request nicht erfolgreich durchführen konnte.
Und eine Testumgebung, in der man das Perl-Script auch ohne Webserver ausführen kann ist sicherlich nie verkehrt. Nur gut, dass es Perl für jedes halbwegs aktuelles Betriebssystem verfügbar ist.
Grüße
Klaus