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 );