use warnings; use strict; use Tk; my %w; $w{size} = 90; $w{mw} = MainWindow->new; $w{mw}->Label( -text => 'Let it snow!' )->pack; $w{frame} = $w{mw}->Frame(-borderwidth => 10)->pack; $w{scale} = $w{frame}->Scale(qw/-orient vertical -length 284 -from 120 -to 10 /, -command => sub { $w{label}->configure( -font => "{Arial} $w{size}") }, -variable => \$w{size} )->pack(-side =>'left'); $w{label} = $w{frame}->Label( -text => "\x{2603}", -font => "{Arial} $w{size}" )->pack(-side =>'right'); $w{frame}->Button( -text => "${_}pt.", -width => 4, -command => [ sub { $w{scale}->set($_[0]) }, $_ ] )->pack() for qw/20 40 60 80 120/; MainLoop; #### [ sub { $w{size} = $_[0] }, $_ ]