sub callback_A { $global{click_timeout} = set_timeout (after=>($config{double_click_time} * 1.5), do=>sub { &callback_A_really(@_); } ); } sub callback_B { cancel_timeout ($global{click_timeout}); # do double-click event } sub callback_A_really { # do single-click event }