#!/usr/bin/perl
use warnings;
use strict;
use POE;
use POE::Component::ControlPort;
my @commands = (
{
name => 'rot13',
help_text => "rot13's text. sure, its lame.",
usage => 'rot13 [ some text ]',
topic => 'silly',
command => sub {
my %input = @_;
my $str;
foreach my $bit (@{ $input{args} }) {
$bit =~ y/A-Za-z/N-ZA-Mn-za-m/;
$str .= $bit;
}
return $str;
},
},
{
name => '+',
help_text => 'add numbers',
usage => '+ [ numbers ]',
topic => 'math',
command => sub {
my %input = @_;
my $total = 0;
foreach my $num (@{ $input{args} }) {
$total += $num;
}
return $total;
},
},
{
name => '-',
help_text => 'subtract numbers',
usage => '- [ numbers ]',
topic => 'math',
command => sub {
my %input = @_;
my $total = 0;
foreach my $num (@{ $input{args} }) {
if($total != 0) {
$total -= $num;
} else {
$total = $num;
}
}
return $total;
},
}
);
POE::Component::ControlPort->create(
local_address => '127.0.0.1',
local_port => '31337',
commands => \@commands,
);
POE::Kernel->run();
syntax highlighted by Code2HTML, v. 0.9.1