#!/usr/bin/perl -w # Init use blah; use blubb; # erzeuge sockets für jedes unterprogramm our @sockets=(); # sockets erzeugen for ($i=0;$i<5;$i++) { $sockets[$i]=create_connection(); } # unterprogramme starten startmodul1(); startmodul2(); ... ... ... # sub um daten aufs LCD zu bringen sub data2lcd { my $socket=(); my $parameter=shift; # herausfinden wer uns aufruft my $caller=get_calling_sub(); if ( $caller="modul1") { $socket=$sockets[0];} if ( $caller="modul2") { $socket=$sockets[1];} if ( $caller="modul3") { $socket=$sockets[2];} print $socket "Blah $parameter"; return 1; } sub startmodul1 { # forken my $pid=fork(); if ($pid==0) { MODUL1LOOP: #daten einsammeln my $data=fetchdata(); my $data2=fetchotherdata(); # daten zum lcd schicken data2lcd($data); data2lcd(data2) sleep (10); goto MODUL1LOOP } return 1; } ... ... ... MAINLOOP: # tue irgendwas blah(); goto mainloop;