html/calc.pl
1 use strict;
2 use vars qw($VERSION %IRSSI);
3
4 use Irssi qw(command_bind active_win);
5 $VERSION = '1.10';
6 %IRSSI = (
7 authors => 'Juerd',
8 contact => 'juerd@juerd.nl',
9 name => 'Calculator',
10 description => 'Simple /calc mechanism',
11 license => 'Public Domain',
12 url => 'http://juerd.nl/irssi/',
13 changed => 'Thu Mar 19 11:00 CET 2002',
14 );
15
16 command_bind(
17 calc => sub {
18 my ($msg) = @_;
19 for ($msg) {
20 s/,/./g;
21 s/[^*.+0-9&|)(x\/^-]//g;
22 s/\*\*/^/g;
23 s/([*+\\.\/x-])\1*/$1/g;
24 s/\^/**/g;
25 s/(?<!0)x//g;
26 }
27 my $answer = eval("($msg) || 0");
28 active_win->print($@ ? "$msg = ERROR (${\ (split / at/, $@, 2)[0]})" : "$msg = $answer");
29 }
30 );