#!/usr/bin/perl -w use strict; use Tk; my $counter = 0; my $test = new Test(); my $mw = tkinit(); my $button1 = $mw->Button(-textvariable => \$counter)->pack(); my $button2 = $mw->Button(-textvariable => \$test->{'counter'} )->pack(); $mw->repeat(100 => sub { fetch_data($test) }); MainLoop; sub fetch_data { my $obj = shift; $counter++; $obj->counter( $obj->counter()+1 ); } package Test; sub new { bless {counter => 0}, shift; } sub counter { $_[1] ? $_[0]->{'counter'} = $_[1] : $_[0]->{'counter'}; } 1;