#!/usr/bin/perl use warnings; use strict; use Tk; my $value; my $mw = MainWindow->new; my $entry = $mw->Entry( -state => 'readonly', -textvariable => \$value )->pack; my $lb = $mw->Listbox( -height => 0 )->pack; $lb->insert( 'end', qw/one two three four five six/ ); $lb->bind( '', [ \&setItem, \$value, Ev('@') ] ); sub setItem { my ( $lb, $valSR, $xy ) = @_; $lb->selectionClear( 0, 'end' ); my $index = $lb->index($xy); if ( defined($index) ) { $lb->selectionSet($index); $$valSR = $lb->get($index); } } MainLoop;