package Math::SymbolicX::Calculator::Interface::Web::Server; use strict; use warnings; use base qw(HTTP::Server::Simple::CGI); use CGI::Ajax; my $pjx = CGI::Ajax->new( 'process_new_input' => \&process_new_input ); our $Calc = Math::SymbolicX::Calculator::Interface::Web->new(); sub handle_request { my ($self, $cgi) = @_; my $html = $pjx->build_html( $cgi, \&Show_HTML ); $html =~ s/^[^\n]*\n//; # header?! print $html; #warn $html; return($html); } sub Show_HTML { my $template = <<"HERE"; Math::SymbolicX::Calculator::Interface::Web Enter [1]:
HERE return $template; } sub process_new_input { my $input = shift; my $output = $Calc->execute_expression($input); if ($output =~ /^ERROR:/) { warn $output; return('error', $output); } return('new_input', $input, $output); } 1; __END__