#!/usr/bin/perl use Tk; use strict; use warnings; my $mw = new MainWindow; my $b = $mw->Button(-text => 'Run')->pack(); my $id; my $i; $b->bind('' => sub { $id = $mw->repeat(0, sub {print ++$i}) } ); $b->bind('' => sub { $id->cancel() } ); MainLoop();