#!/usr/bin/perl use 5.14.0; use warnings; use threads; use threads::shared; use Thread::Suspend; my $i : shared = 0; my $worker = threads->create(sub { threads->self()->suspend(); while (1) { say "Ich laufe nur, wenn i > 100"; sleep 1; } }); my $ueberwacher = threads->create(sub { while (1) { select undef, undef, undef, 0.1 while $i <= 100; $worker->resume(); select undef, undef, undef, 0.1 while $i > 100; $worker->suspend(); } }); while (1) { print "Neuer Wert fuer i: "; chomp(my $answer = ); last unless defined $answer; $i = $answer; $_->join() for threads->list(threads::joinable); }