use Tk; use Tk::HList; @ElementsList = ("one", "two", "three"); @SubElementsList = ("four", "five", "six"); @Hosts = ("this", "that", "them"); $mw = MainWindow->new; $upperframe = $mw->Frame(-relief => 'groove', -borderwidth => 3, )->pack(-side => 'top', -fill => 'x'); $label=$upperframe->Label(-text => "TEXT")->pack(-side => 'left'); $label->pack; $label->bind('' => sub { $mw->destroy }); $middleframe = $mw->Frame(-relief => 'groove', -borderwidth => 3, )->pack(-side => 'top', -fill => 'x'); $list=$middleframe->Scrolled(qw/Listbox -setgrid 1 -height 10 -scrollbars e/ )->pack(qw/-side left -expand yes -fill both/); $list->focus; $list->bind('' => sub { showdata($_[0]->get('active')) }); $list->insert(0, @Hosts); $list->activate(0); $lowerframe = $mw->Frame(-relief => 'groove', -borderwidth => 3, )->pack(-side => 'top', -fill => 'x'); $CfgDisplay = $lowerframe->Scrolled(qw\HList -separator | -selectmode extended -width 55 -height 20 -indent 35 -scrollbars se\ )->grid(qw/-sticky nsew/); MainLoop; sub showdata { $CfgDisplay->delete(all); foreach my $element(@ElementsList) { $CfgDisplay->add($element, -text => $element, -data => $element); foreach my $subelement(@SubElementsList) { $CfgDisplay->add("$element|$subelement", -text => $subelement, -data => $subelement); } } }