use Tk;
use strict;
my ($mw, $button);
my $st;
$mw = MainWindow->new(-title => "ololo" );
$button = $mw->Button(-text => 'Do!', -command =>\&statcon)->pack(-anchor=>"center");
MainLoop;
sub change_connected {print $st="Connected."};
sub change_wrong_pass {print $st="Incorrect password."};
sub change_wrong_login {print $st="Incorrect login."};
sub change_connetcion_problems {print $st="Connection problems."};
my %change_status;
%change_status = (
"+OK" => \&change_connected,
"pass" => \&change_wrong_pass,
"login" => \&change_wrong_login,
"-ERR" => \&change_connetcion_problems
);
my $a="+OK";
sub statcon{change_status("+OK");}
sub change_status($){$change_status{$a}->();}
Как заставить Tk в perl работать с эмуляцией switch через хэш
Код:
Не могу понять почему он не печатает соответствующее сообщение.
с конструкцией if-else все прекрасно работает, но не хотелось бы к ней прибегать.
а почему Switch не использовать? perldoc Switch
Спасибо большое, все работает.