diff options
Diffstat (limited to 'scripts/calc.pl')
-rw-r--r-- | scripts/calc.pl | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/scripts/calc.pl b/scripts/calc.pl new file mode 100644 index 0000000..21aa7de --- /dev/null +++ b/scripts/calc.pl @@ -0,0 +1,30 @@ +use strict; +use vars qw($VERSION %IRSSI); + +use Irssi qw(command_bind active_win); +$VERSION = '1.10'; +%IRSSI = ( + authors => 'Juerd', + contact => 'juerd@juerd.nl', + name => 'Calculator', + description => 'Simple /calc mechanism', + license => 'Public Domain', + url => 'http://juerd.nl/irssi/', + changed => 'Thu Mar 19 11:00 CET 2002', +); + +command_bind( + calc => sub { + my ($msg) = @_; + for ($msg) { + s/,/./g; + s/[^*.+0-9&|)(x\/^-]//g; + s/\*\*/^/g; + s/([*+\\.\/x-])\1*/$1/g; + s/\^/**/g; + s/(?<!0)x//g; + } + my $answer = eval("($msg) || 0"); + active_win->print($@ ? "$msg = ERROR (${\ (split / at/, $@, 2)[0]})" : "$msg = $answer"); + } +); |