sub MouseClicker() { # MouseClicker is the server my $server = IO::Socket::UNIX->new( Type => SOCK_STREAM, Local => $socketpath, Listen => 1, ) or croak($!); $server->blocking(0); my $socket; while(!defined($socket)) { $socket = $server->accept(); } $socket->blocking(0); print "Screenlooker connection established!\n"; while($keepRunning) { if(!click($buttonx, $buttony)) { # USER ABORT print "USER ABORT (mouse moved manually)\n"; syswrite($socket, "ABORT\n"); last; } my $getline = readSocket($socket); if($getline ne '') { my ($itemx, $itemy) = split/\§/, $getline; print "Item click on $itemx / $itemy\n"; click($itemx, $itemy); } } print "Mail loop exit\n"; while($keepRunning) { print "Waiting for ScreenLooker to exit...\n"; sleep(0.1); } exit(0); }