in reply to weird case of memory corruption?
..really weird :) Firstly I removed all stringified numbers, all STDOUT explicit mention and implicit hash element access.. not the cause of your errors but just to clean the field.
Then I suspect the problem being in the -textvariable behaviour: I suspect problem accessing elements of a nested datastructure. Infact uncommenting my DUMMY assignement I found sometimes val being undef (using dd to dump the whole hash)
#!/usr/bin/perl use Data::Dump; use strict; use warnings; use Tk; use Tk::ProgressBar; my %pid=(ex1=>{as=>'temp', val=> -21.5}); my $mw=MainWindow->new(); my $tmpbar=$mw->Frame()->pack( -padx=>30 ); my $dummy = 'DUMMY'; # my $dummy = $pid{ex1}->{val}; PBar( $tmpbar, \$dummy, -30, 70 )->pack(); # PBar( $tmpbar, \$pid{ex1}->{val}, -30, 70 )->pack(); $tmpbar->Label( -textvariable => \$pid{ex1}{val} )->pack(); $tmpbar->Label( -text => $pid{ex1}->{as} )->pack(); print "val Labels: $pid{ex1}->{val}\n"; dd %pid; MainLoop; sub PBar { my($frame, $val, $min, $max)=@_; print "val PBar1: $$val\n"; my $pbar=$frame->ProgressBar( -anchor=>'s', -width=>100, -length=>500, -blocks=>100, -gap=>1, -resolution=>0.5, -variable=>$val, -from=>$min, -to=>$max ); print "val PBar2: $$val\n"; dd %pid; return $pbar; }
L*
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: weird case of memory corruption?
by perltux (Monk) on May 12, 2021 at 07:36 UTC | |
by Discipulus (Canon) on May 12, 2021 at 09:08 UTC |