#!/usr/bin/perl use warnings; use strict; use Net::Dict; use Tk; use Tk::Adjuster; use Tk::ROText; use Tk::Scrollbar; use Tk::Menu; use Tk::Text; my @defs; my $mw = new MainWindow; my $frame = $mw->Frame(); my $list = $frame->Scrolled('Listbox', -scrollbars => 'onoe'); my $defw = $frame->Scrolled('ROText', -scrollbars => 'onoe'); my $aj = $frame->Adjuster(-widget => $list, -side => 'left'); my $wordbox = $mw->Entry(); $frame->pack(-fill => 'both', -expand => 1); $list->pack(-side => 'left', -fill => 'both', -expand => 1); $aj->packAfter($list, -side => 'left'); $defw->pack(-side => 'right', -fill => 'both', -expand => 1); $wordbox->pack(-side => 'left', -fill => 'x', -expand => 1); $wordbox->bind('', \&get_words); $list->bind('<>', \&get_def); sub get_words { my $dict = Net::Dict->new('dict.org'); my $h = $dict->define($wordbox->get); my $result; my $n = 0; foreach my $i (@{$h}) { my ($db, $def) = @{$i}; $list->insert('end', $db); $defs[$n] = $def; $n++; } } sub get_def { my @deftoget = $list->curselection; print @deftoget; $wordbox->delete(0, 'end'); my $result = $list->get($deftoget[0])."\n$defs[$deftoget[0]]\n\n"; $defw->Contents($result); } MainLoop; exit 0;