Hi, I have come across a very weird problem while trying to use Tk::ProgressBar.
Basically when running the following code, the output of the Label() after creating the ProgressBar seems to contain random bytes of the source code of the script itself rather than the value of the variable.
here is the example script:
#!/usr/bin/perl
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 );
PBar( \$tmpbar, \$pid{ex1}{val}, '-30', '70' )->pack();
$tmpbar->Label( -textvariable => \$pid{ex1}{val} )->pack();
$tmpbar->Label( -text => "$pid{ex1}{as}" )->pack();
print STDOUT "val Labels: $pid{ex1}{val}\n";
MainLoop;
sub PBar {
my($frame, $val, $min, $max)=@_;
print STDOUT "val PBar1: $$val\n";
my $pbar=$$frame->ProgressBar(
-anchor=>'s',
-width=>40,
-length=>500,
-blocks=>100,
-gap=>1,
-resolution=>0.5,
-variable=>$val,
-from=>$min,
-to=>$max
);
print STDOUT "val PBar2: $$val\n";
return $pbar;
}
when running this script you will see that the Label under the vertical ProgressBar instead of containing the value of $pid{ex1}{val}, prints out three random bytes that appear to be from the source of the script itself.
What is happening here? Memory corruption? ::confused::
Also (this is my second question), why does ProgressBar modify the value of $pid{ex1}{val} rather than just reading it?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.