#!/usr/bin/perl use Data::Dump; #https://www.perlmonks.org/index.pl?node_id=11132441 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 $pbar = $tmpbar->ProgressBar( -anchor=>'s', -width=>100, -length=>500, -blocks=>100, -gap=>1, -resolution=>0.5, -variable=>\$pid{ex1}{val}, -from=>-30, -to=>70, )->pack(); my $repeat; $repeat = $mw->repeat(500,sub{ $repeat->cancel() if $pid{ex1}{val} >= 65; unless ( defined $pid{ex1}{val} ){ print "WARNING: \$pid{ex1}{val} NOT FOUND!!\n"; dd %pid; } $pid{ex1}{val}+=5; }); $tmpbar->Label( -textvariable => \$pid{ex1}{val} )->pack(); MainLoop;