se warnings; use strict; use Tk; my $mw = MainWindow->new(); $mw->configure(-title=> "Some Title"); $mw->minsize(qw(700 200)); my $mainDataFrame = $mw->Frame()->pack(-side=>'top', -fill=>'x'); my $labelFrame = $mainDataFrame->Frame->pack(-side=>'left'); my $dataEntryFrame = $mainDataFrame->Frame->pack(-side=>'left'); my $unitsFrame = $mainDataFrame->Frame->pack(-side=>'left'); my $refreshRate; my $spectralRes; my $showSpectrumHz; my @tableConfig = ( ['Refresh rate:','60',\$refreshRate,'FPS'], ["Spectral resolution",'10',\$spectralRes,'Hz'], ["Show spectrum up to",'5000',\$showSpectrumHz,'Hz']); for my $rowRef ( @tableConfig ) { $labelFrame->Label(-text => "$rowRef->[0]", -anchor=>'e', -justify => 'right')->pack(-side=>'top', -fill => 'x'); my $dataRef = $rowRef->[2]; # put default value into textvariable $$dataRef = $rowRef->[1]; $dataEntryFrame->Entry(-width => 8, -textvariable => $dataRef, )->pack(-side =>'top', -fill => 'x'); $unitsFrame->Label(-text => "$rowRef->[3]", -anchor=>'w', -justify => 'left')->pack(-side=>'top', -fill => 'x'); } MainLoop();