# Delete this from your code: #for ( 0 .. 54 ) #{ # get($_); # last if ($_ == 53 ) #} # Replace with: # Make a closure with $counter. { my $counter = 1; $fetch_data_point = sub { get($counter++); #collect a data point $mainwindow->after(100, $fetch_data_point) unless $counter > 54; # schedule the next run, if necessary. }; } $mainwindow->after(100, $fetch_data_point ); # wait 100 ms then call function ref.