#!/usr/bin/perl -w use strict; use Tk; my $scale_var = 0; my $entry_var; my $main = MainWindow->new(); my $entry = $main->Entry(-textvariable => \$entry_var, )->pack(); my $scale = $main->Scale(-variable => \$scale_var, -length => '100p', -from => 0, -to => 100, -command => sub { $entry_var = $scale_var }, )->pack(); $entry->bind( '', sub { if ( $entry_var =~ /^\d+$/ && $entry_var <= 100 ) { $scale_var = $entry_var; } else { print STDOUT "\a\a"; $entry->delete( 0, 'end' ); } } ); MainLoop;