# here's what I mean, I hacked your example # the trip button adds a third element, which gets dropped # silently. (and you can escape it, and see the escape... use Tkx; $Tkx::TRACE = 64; Tkx::package_require('tile'); my $mw = Tkx::widget->new("."); my $list; my @strings; $strings[0] = 'Hello, this should be ok'; $strings[1] = 'this too'; $list = &make_tcl_list(@strings); # example bug : new_tk__listbox ( $lb = $mw->new_listbox( -height => 5,-listvariable => \$list ) ) ->g_grid( -column => 0, -row => 0, -sticky => "nwes" ); ( $s = $mw->new_ttk__scrollbar( -command => [ $lb, "yview" ], -orient => "vertical" ) )->g_grid( -column => 1, -row => 0, -sticky => "ns" ); $lb->configure( -yscrollcommand => [ $s, "set" ] ); ( $mw->new_ttk__label( -text => "Status message here", -anchor => "w" ) )->g_grid( -column => 0, -row => 1, -sticky => "we" ); ( $mw->new_ttk__sizegrip )->g_grid( -column => 1, -row => 1, -sticky => "se" ); $mw->g_grid_columnconfigure( 0, -weight => 1 ); $mw->g_grid_rowconfigure( 0, -weight => 1 ); ## add a button to add an unbalanced brace (my $button = $mw->new_tk__button( -text=>"Trip", -anchor=>'w', -command=> sub { $strings[2] = 'watch this{'; $list=&make_tcl_list(@strings); } ))->g_grid( -column => 0, -row => 1, -sticky => "nwes" ); Tkx::MainLoop(); sub make_tcl_list{ my @LIST = @_; my $listx = ''; for my $i (@LIST) { $listx = $listx . ' {' . $i . '}'; } return $listx; }