use strict; use warnings; use Tk; my $mac_addr = ""; my $mw = new MainWindow(-title => 'Enter a MAC address'); my $fr = $mw->Frame()->pack(-expand => 1, -fill => 'both'); my $lb = $fr->Label(-text => "Enter MAC address ")->pack(-side => 'left'); my $en = $fr->Entry(-textvar => \$mac_addr)->pack(-side => 'left'); my $bt = $fr->Button(-text => 'Validate', -background => 'green'); $bt->configure(-command => sub { validate() }); $bt->pack(-side => 'left'); MainLoop; sub validate { my $valid = '[0-9a-f]' x 2; if ($mac_addr =~ /($valid:){5}$valid/i) { print "Address '$mac_addr' is VALID\n"; } else { print "Address '$mac_addr' is INVALID\n"; } }