#!/usr/bin/perl use common::sense; use AnyEvent; use Data::Dumper; sub do { my $iter = shift; my $cv = AnyEvent->condvar; my ($n, $t, $d, $e); ($n, $t) = (AnyEvent->now, AnyEvent->time); $d = $t-$n; say "$iter start timer diff = $d, time = $t, now = $n"; my $timer = AnyEvent->timer( after => 2, cb => sub { warn "Timer\n"; $cv->send }, ); $cv->recv; ($n, $t, $e) = (AnyEvent->now, AnyEvent->time, AnyEvent->time - $t); $d = $t-$n; say "$iter got timer diff = $d, elapsed = $e, time = $t, now = $n"; } for (1..4) { &do($_); sleep(5); warn "\n"; }