sub bot_command {
my $command = shift(@_);
join_channel($command) if ($command =~ /join/);
part_channel($command) if ($command =~ /part/);
msg_user($command) if ($command =~ /msg/);
....
default($command);
}
####
sub bot_command {
local $_ = shift;
/join/ ? &join_channel :
/part/ ? &part_channel :
/msg/ ? &msg_user :
&default
}
####
sub join_channel { ... }
sub part_channel { ... }
sub msg_user { ... }
my %dispatch = (
join => \&join_channel,
part => \&part_channel,
msg => \&msg_user,
);
sub bot_command {
my $cmd = shift;
$dispatch{$cmd}
? &{$dispatch{$cmd}}
: &default
}