I'm not sure how it would become empty randomly.
Yeah, me neither, but since you left out any inkling of where @dispRes and %hash come from, or how they are generated, or what might be in them, I am reduced to making wild guesses and suppositions. Having undefined column headings gives me an error similar to what you reported but I am running perl 5.16.1 so it may be different in newer Perls. Try running the following and see if your error is the same. If so, my previous comment stands, if not, well, sorry, my mind reading is not up to snuff.
use warnings;
use strict;
use Tk;
my %w;
$w{mw} = MainWindow->new;
$w{lb} = $w{mw}->Scrolled(
qw/MListbox -selectmode single -scrollbars oe -font small /
)->pack(-expand => 1, -fill => 'both');
for my $x (qw//) {
#for my $x (qw// || 'oops') {
#for my $x (qw/a b c/) {
$w{lb}->columnInsert('end', -text => $x ) ;
}
for (1 .. 10){
my @row = ($_, $_, $_,);
$w{lb}->insert('end', \@row);
$w{lb}->see('end');
$w{lb}->update;
}
MainLoop;