#! perl # generic perl code evaluator sub eval_event { my ($event, $args, @args) = @_; my $code = $event->message; my $who = eval { $event->environment->name } || ""; my $rv = eval "my ($args) = \@args;\n" . "#line 1 \"$who\"\n" . $code; warn $@ if $@; $rv } # currently say only sub on_say { my ($event) = @_; my ($event, $ob, $who, $msg, $options) = @$event{qw(event who activator message options)}; local $_ = $msg; eval_event $event, '$ob, $who, $msg, $options', $ob, $who, $msg, $options }