#!/usr/bin/perl use warnings; use strict; use Tk; use Tk::ROText; my $mw = 'MainWindow'->new(-title => 'Tagging'); $mw->Label(-text => 'Here, the tags are being created:')->pack; my $rotext = $mw->ROText->pack; $mw->Label(-text => 'Try typing here, including the letter "s":')->pack; my $text = $mw->Text(-width => 20, -height => 3)->pack; $mw->Entry(-text => 'Click here to change focus.', -state => 'readonly')->pack; my $label = $mw->Label(-textvariable => \ my $l)->pack; my $max = 1000; my ($i, $repeat, $stop); $repeat = $mw->repeat(10, sub { return if $stop; ++$i; $rotext->insert('end', $i, "T$i"); $l = "$i/$max tags added. Press 's' to stop."; $repeat->cancel if $i == $max; }); sub stop { $stop = ! $stop; $l =~ s/stop/start/; } $mw->bind('', \&stop); $text->bind('', sub { $mw->bind('', "") }); $text->bind('', sub { $mw->bind('', \&stop) }); MainLoop();