#!/usr/bin/perl ########## use Tk; use strict; my $mw=tkinit; my $c=$mw->Scrolled('Canvas', -width=>400, -height=>400, -bg=>'red', -scrollregion=>[0,0,1000,1000], -scrollbars=>'se')->pack(-expand=>1, -fill=>'both'); $c->create('rect',&n) for (0..40); my $id = $mw->repeat(100,sub{ $c->xviewScroll(1,'units'); $c->yviewScroll(1,'units'); }); $mw->after(10000, sub{$id->cancel}); MainLoop; sub n { my ($x1,$y1) = ( rand(1000), rand(1000) ); my ($x,$y) = ($x1/2,$y1/2); return ($x,$y,$x1,$y1); }