$message =~ s~
~=br=~isg;
while ($message =~ s{\[code\]([\S\s].+?[\S\s])\[/code\]}
{
my $tmp = $1;
$tmp =~ s!!>!g;
$tmp =~ s!:!:!g;
$tmp =~ s!\[![!g;
$tmp =~ s!\\!\!g;
$tmp =~ s!\]!]!g;
$tmp =~ s!\)!)!g;
$tmp =~ s!\(!(!g;
$tmp =~ s!\|!|!g;
$tmp =~ s!<!<!g;
$tmp =~ s!>!>!g;
$tmp =~ s!([^\&\$])(\#.*?(=br=))!$1$2!g;
$tmp =~ s!(>)(\#.*?(=br=))!$1$2!g; # A fix for bug 2
$tmp =~ s!('.*?('|=br=))!$1!g;
$tmp =~ s!(".*?("|=br=))!$1!g;
$tmp =~ s!(return)([^\w])!$1$2!g;
$tmp =~ s!(require)([^\w])!$1$2!g;
$tmp =~ s!([^\#\d\w])(\d+)!$1$2!g;
$tmp =~ s!(while)!$1!g;
$tmp =~ s!(foreach)!$1!g;
$tmp =~ s!([^\w])(for)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(my)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(sub)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(if)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(eq)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(ne)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(lt)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(gt)([^\w])!$1$2$3!g;
$tmp =~ s!([^\w])(or)([^\w])!$1$2$3!g;
$tmp =~ s!(next)!$1!g;
$tmp =~ s!(last)!$1!g;
$tmp =~ s!(unless)!$1!g;
$tmp =~ s!(elsif)!$1!g;
$tmp =~ s!(else)!$1!g;
$tmp =~ s!([^\w])(use)([^\w])!$1$2$3!g;
$tmp =~ s!(package)!$1!g;
$tmp =~ s!"!"!g;
$tmp =~ s!"!"!g; #"
$tmp =~ s!\s{1};!;!g;
#$tmp =~ s!>br>!\n!g;
$tmp = "
# $msg{code}
"
. $tmp
. '