I made a mistake here. When the Text widget has focus, the C-s character is still inserted. After re-reading the docs, it looks like the best approach for an instance binding would be something like:
use Tk;
$mw = tkinit;
$t1 = $mw->Text->pack;
$t1->bind('<Control-s>', sub { print "foo\n\n"; $_[0]->break });
# the order of bindtags is:
# class name (Tk::Text), window name, ancestral toplevel, "all"
# this modifies the tag list so that the instance binding,
# which includes a call to break(), has higher priority
# than the class binding
$t1->bindtags([($t1->bindtags)[1,0,2,3]]);
MainLoop;
|