Tk has already mouse wheel support, however, there is no binding in perl/Tk. If you want to make Text or Listbox widgets mouse-wheel-aware, you can use the method below (borrowed from the Tcl/Tk library), e.g. $text->BindMouseWheel. Note that I changed the scrolling delta from the original 4 or 5 lines to 3 (which seems to match the behaviour on my NT machine). # not yet tested on Unix sub Tk::Widget::BindMouseWheel { my($w) = @_; # The MouseWheel will typically only fire on Windows. However, # someone could use the "event generate" command to produce one # on other platforms. $w->bind('', [ sub { $_[0]->yview('scroll',-($_[1]/120)*3,'units') }, Tk::Ev("D")]); if ($Tk::platform eq 'unix') { # Support for mousewheels on Linux/Unix commonly comes through mapping # the wheel to the extended buttons. If you have a mousewheel, find # Linux configuration info at: # http://www.inria.fr/koala/colas/mouse-wheel-scroll/ $w->bind('<4>', sub { $_[0]->yview('scroll', -3, 'units') unless $Tk::strictMotif; }); $w->bind('<5>', sub { $_[0]->yview('scroll', 3, 'units') unless $Tk::strictMotif; }); } }