#!/usr/bin/perl use strict; # https://perlmonks.org/?node_id=11149765 use warnings; use Tk; my $mw = MainWindow->new(); $mw->geometry("300x100+20+20"); $mw->bind(' ' => sub{exit;}); $mw->configure(-title => 'Listbox "Return" Test'); my $lb = $mw->Scrolled( "Listbox", -scrollbars => 'oe', -selectmode => "single", -height => 15, -width => 35, )->pack(); $lb->insert('end', 'Name1'); $lb->insert('end', 'Name2'); $lb->insert('end', 'Name3'); $lb->selectionSet(1); $lb->bind('' => sub { Info($lb->get($lb->curselection())) }); $lb->bind('' => sub { Play($lb->get($lb->curselection())) }); ################################################### # *** Problem *** # "Return" binding does not call "Play" subroutine # when ENTER key is pressed. ################################################### $lb->focus; # NOTE $lb->bind('' => sub { Play($lb->get($lb->curselection())) }); MainLoop(); sub Info { my $name = shift; print "\n(Info)-Name: $name\n"; return; } sub Play { my $name = shift; print "(Play)-Name: $name\n"; return; }