Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

TK Entry - Validating Input

by Dirk80 (Monk)
on Mar 06, 2013 at 13:53 UTC ( #1022011=perlquestion: print w/ replies, xml ) Need Help??
Dirk80 has asked for the wisdom of the Perl Monks concerning the following question:

Hello,

I want to validate the input of an entry widget. Only positive hexadecimal digits shall be allowed.

Here my code:

#!/usr/bin/perl use strict; use warnings; use Tk; use Data::Dumper; my $mw = new MainWindow; $mw->title ("Perl/Tk - Entry Valdiation"); my $entry1 = $mw->Entry ( '-width' => 30, '-validate' => 'key', '-validatecommand' => sub { print Dumper( \@_ ); + return 0 unless( $_[0] =~ m/^[0-9a-fA-F] ++/ ) } ); $entry1->pack(); MainLoop;

After the input of a valid character I can never remove it again. The first character is always there then. In the dumped output I can see that the character should be gone, but it is still visible in the entry.

Am I doing something wrong? Is it a bug?

Thanks alot for your help.

Greetings,

Dirk

Comment on TK Entry - Validating Input
Download Code
Re: TK Entry - Validating Input
by Crackers2 (Vicar) on Mar 06, 2013 at 14:49 UTC

    Your regex m/^[0-9a-fA-F]+/ doesn't match the empty string, so when you try to remove the last character your validation fails and the remove is disallowed.

    Try return 0 unless( $_[0] =~ m/^[0-9a-fA-F]*/ ) instead.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1022011]
Approved by marto
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (6)
As of 2014-12-28 03:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (178 votes), past polls