#!/usr/bin/perl use strict; use warnings; use Tk; use POSIX; my $red; my $green; my $blue; my $mw = MainWindow->new; $mw->geometry('300x100'); # x amount then y amount $mw->title('Raw Renamer'); # A frame for labels on the left hand size my $left_frame = $mw->Frame (-borderwidth => 2, -relief => 'groove') ->pack(-side => 'left', -anchor => 'n', -expand => 1); my $text_label = $left_frame->Label->pack(-side => 'left', # Why this ? -anchor => 'n', -expand => 1); $text_label->Label(-text =>"Red")->pack( -side => 'top', -anchor => 'w'); $text_label->Label(-text =>"Green")->pack(-side => 'top', -anchor => 'w'); $text_label->Label(-text =>"Blue")->pack( -side => 'top', -anchor => 'w'); # Another frame for the ($red $green $blue) variables my $variable_frame = $mw->Frame (-borderwidth => 4, -relief => 'groove') ->pack(-side => 'left', -anchor => 'n', -expand => 1); my $red_label = $variable_frame->Label(-textvariable =>\$red) ->pack(-side => 'top'); my $green_label = $variable_frame->Label(-textvariable =>\$green)->pack(-side => 'top'); my $blue_label = $variable_frame->Label(-textvariable =>\$blue) ->pack(-side => 'top'); Intialize(); # How is this infinite loop bypassed ? MainLoop; sub Intialize { print "Str"; while(1) { print "."; $red = floor(50*rand()); $red_label->update; sleep 2; $green = floor(50*rand()+50); $green_label->update; sleep 2; $blue = floor(50*rand()+100); $blue_label->update; sleep 2; } }