Perl Tutorials - Herong's Tutorial Examples - v6.03, by Herong Yang
Calculator.pl - CGI Application Example
This section provides a tutorial example of Perl CGI application: Calculator.pl - Returning the result of any arithmetic expression like a calculator.
Here is a simple CGI application, Calculator.pl:
#- Calculator.pl
#- Copyright (c) HerongYang.com. All Rights Reserved.
&getValues();
$res = "";
$res = eval($exp) if ($exp);
print "Content-Type: text/html\n\n";
print "<html><body>\n";
print "<b>Calculator:</b><br/>\n";
print "<form action=\"/cgi-bin/Calculator.pl\" method=\"GET\">\n";
print "<table border=\"0\">\n";
print "<tr><td align=\"right\">Expression:</td>\n";
print "<td><input type=\"text\" name=\"exp\"";
print " value=\"$exp\"/></td></tr>\n";
print "<tr><td align=\"right\">Result:</td>\n";
print "<td>$res</td></tr>\n";
print "<tr><td></td>\n";
print "<td><input type=\"submit\" value=\"Evaluate\"/></td></tr>\n";
print "</table></form>\n";
print "</html></body>\n";
exit;
sub getValues {
$query = $ENV{'QUERY_STRING'};
@list = split( /\&/, $query);
foreach (@list) {
($var, $val) = split(/=/);
$val =~ s/\'//g;
$val =~ s/\+/ /g;
$val =~ s/%(\w\w)/sprintf("%c", hex($1))/ge;
$exp = $val if ($var =~ /exp/);
}
}
Enjoy it.
Table of Contents
Data Types: Values and Variables
Expressions, Operations and Simple Statements
Name Spaces and Perl Module Files
Hard References - Addresses of Memory Objects
Objects (or References) and Classes (or Packages)
Typeglob and Importing Identifiers from Other Packages
String Built-in Functions and Performance
File Handles and Data Input/Output
Open Directories and Read File Names
File System Functions and Operations
Socket Communication Over the Internet
XML::Simple Module - XML Parser and Generator
SOAP::Lite - SOAP Server-Client Communication Module
Perl Programs as IIS Server CGI Scripts
►CGI (Common Gateway Interface)
What Is Common Gateway Interface (CGI)?
QUERY_STRING - CGI Query String
►Calculator.pl - CGI Application Example
XML-RPC - Remote Procedure Call with XML and HTTP
RPC::XML - Perl Implementation of XML-RPC
Integrating Perl with Apache Web Server
CGI.pm Module for Building Web Pages
LWP::UserAgent and Web Site Testing
Converting Perl Script to Executable Binary