in reply to Tk question

You need to call destroy on the target widget. When you create the button, do something like this:
$win->Button(-text => 'OK', -command => [\&ok, $win])->pack;
This will call ok($win) whenever the OK button is triggered (In general, \&ok is clearer than sub { ok() }). ok() then becomes:
sub ok { my $win = shift; $win->destroy; $notified = 1; }
Are you sure it was a book? Are you sure it wasn't.....nothing?