#!/usr/bin/perl -- use strict; use warnings; use Tk; my $mw = tkinit; my $target = 45; my $tmax = 60; my $bb = $mw->Button( -text => 'JT' )->pack;; my $tt = $mw->Entry( -textvariable => \$target )->pack; my $br = $mw->Button( -text => 'RJ' )->pack;; my $fr = $mw->Scrolled('Frame')->pack; $fr->Button( -text => $_ )->pack for 0 .. $tmax; $bb->configure( -command => [ \&dothat, $fr, \$target, $tmax ] ); $br->configure( -command => [ \&dothat, $fr, \$target, $tmax , 'random'] ); MainLoop; sub dothat { my( $fr, $tgr, $tm , $random ) = @_; $random and $$tgr = int rand $tm; my $tg = $$tgr / $tm; $fr->yview( moveto => $tg ); return; } __END__