#!/usr/bin/perl # http://perlmonks.org/?node_id=1212975 use strict; use warnings; use Tk; use Tk::Pane; my $mw = MainWindow->new; $mw->geometry( '500x400+300+300' ); my @items; my $selectedtext = ''; $mw->Button( -text => 'Exit', -command => sub { $mw->destroy }, )->pack( -side => 'bottom', -expand => 0, -fill => 'x' ); $mw->Label( -textvariable => \$selectedtext, -width => 10, -font => 'courier 30', -fg => 'navy', )->pack( -side => 'right', -fill => 'y' ); my $pane = $mw->Scrolled(Pane => -scrollbars => 'oe', -sticky => 'nsew', )->pack(-fill => 'both', -expand => 1); for my $text ( qw( one two three four five six seven eight nine ten ) ) { my $label = $pane->Label( -text => $text, -anchor => 'w', -fg => 'red', -font => 'courier 40', )->pack(-fill => 'both', -expand => 1); push @items, $label; $label->bind('' => sub { $_->configure( -fg => 'red', -font => 'courier 40' ) for @items; $selectedtext = $text; $label->configure( -fg => 'green', -font => 'times 80' ); } ); } MainLoop;