1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
  
     | 
    
      #!/usr/local/bin/perl -w
use Tk;
use strict;
{
package Tk::LimitEntry;
require Tk::Entry;
@Tk::LimitEntry::ISA = qw(Tk::Entry);
Construct Tk::Widget 'LimitEntry';
sub Insert
{
 my ($w,$char) = @_;
 my $width = $w->cget('-width');
 my $len   = $w->index('end');
 if ($len >= $width)
  {
   $w->bell;
  }
 else
  {
   $w->SUPER::Insert($char);
  }
}
}
my $mw = MainWindow->new;
my $var = "";
my $e  = $mw->LimitEntry(-width => 8, -textvariable => \$var)->pack;
$mw->update;
$e->focus;
MainLoop;
 
     |