#!/usr/bin/perl
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
$buffer =~ tr/+/ /;
$buffer =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
@buf = split(/&/,$buffer);
foreach $buf (@buf){
($name,$value) = split(/=/,$buf);
$value =~ tr/+/ /;
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
$FORM{$name} = $value;
}
print("Content-type: text/html\n\n\n");
print("
Calculator");
print("
Calculator
");
if($FORM{'operator'} ne "")
{
if($FORM{'operator'} eq " "){ # a plus character is transformed to a space!
$res = $FORM{'value1'} + $FORM{'value2'};
} elsif($FORM{'operator'} eq "-"){
$res = $FORM{'value1'} - $FORM{'value2'};
} elsif($FORM{'operator'} eq "*"){
$res = $FORM{'value1'} * $FORM{'value2'};
} elsif($FORM{'operator'} eq "/"){
if($FORM{'value2'} != 0){
$res = $FORM{'value1'} / $FORM{'value2'};
}else{
$res = "Error";
}
} elsif($FORM{'operator'} eq "^"){
$res = $FORM{'value1'} ** $FORM{'value2'};
}
print("Last value was: $res
");
}
print("");
print("
");
print("Tillbaka
");
print("Go back");
print("");