#!/opt/homebrew/bin/perl use strict; use warnings; use Data::Dumper; use Tk; use utf8; use Text::Unidecode; my $mw = MainWindow->new(); my $textvar; my $e = $mw->Entry(-textvariable => \$textvar, -validate => 'key', -validatecommand => sub { my ($new,$changed,$old,$ix,$type) = @_; return 1 if (!defined($changed)); return 1 if ($new eq "") or ($type<0); $mw->afterIdle(sub{ $textvar = unidecode($new); print STDERR "ASCII: $textvar\n"; }); return 1; }, )->pack(); MainLoop;