#! /usr/bin/perl -T # Celsius to fahrenheit (and back again). use CGI qw[:standard]; use strict; $| = 1; my $celsius = param( "celsius" ); my $fahrenheit = param( "fahrenheit" ); # if either is non-numeric, render as "0". for ($celsius, $fahrenheit) { s/^[^-0-9].*/0/ } # check for (ne "") rather than a straight boolean True to ensure we still # convert zero values. if ($celsius ne "") { $fahrenheit = sprintf( "%4.2f", ($celsius * (9 / 5)) + 32 ); } elsif ($fahrenheit ne "") { $celsius = sprintf( "%4.2f", ($fahrenheit - 32) * (5 / 9) ); } print "Content-type: text/html\r\n\r\n"; print "<HTML>\n" . " <HEAD>\n" . " <TITLE>Celcius-to-Fahrenheit Temperature Converter</TITLE>\n" . " <LINK REL=\"shortcut icon\" HREF=\"/favicon.ico\" TYPE=\"image/x-icon\" />\n" . " </HEAD><BODY><FONT FACE=\"Arial,Helvetica\">\n" . " <H1>Celcius-to-Fahrenheit Temperature Converter</H1>\n" . " <HR ALIGN=\"left\" WIDTH=\"90%\">\n ". " <FORM ACTION=\"/cgi-bin/c2f.pl\" METHOD=\"post\">\n" . " <TABLE BORDER=\"0\" WIDTH=\"60%\">\n" . " <TR>\n" . " <TD>Celsius:</TD>\n" . " <TD ALIGN=\"right\"><INPUT TYPE=\"text\" WIDTH=\"10\" MAXLENGTH=\"10\" NAME=\"celsius\" VALUE=\"$celsius\"></TD>\n" . " </TR><TR>\n" . " <TD>&nbsp;</TD>\n" . " <TD ALIGN=\"right\"><INPUT TYPE=\"submit\" VALUE=\"Convert to Fahrenheit\"></TR>\n" . " </TR>\n" . " </TABLE>\n" . " </FORM>\n". " <HR ALIGN=\"left\" WIDTH=\"90%\">\n ". " <FORM ACTION=\"/cgi-bin/c2f.pl\" METHOD=\"post\">\n" . " <TABLE BORDER=\"0\" WIDTH=\"60%\">\n" . " <TR>\n" . " <TD>Fahrenheit:</TD>\n" . " <TD ALIGN=\"right\"><INPUT TYPE=\"text\" WIDTH=\"10\" MAXLENGTH=\"10\" NAME=\"fahrenheit\" VALUE=\"$fahrenheit\"></TD>\n" . " </TR><TR>\n" . " <TD>&nbsp;</TD>\n" . " <TD ALIGN=\"right\"><INPUT TYPE=\"submit\" VALUE=\"Convert to Celsius\"></TR>\n" . " </TR>\n" . " </TABLE>\n" . " </FORM>\n". " <HR ALIGN=\"left\" WIDTH=\"90%\">\n ". " Return <A HREF=\"http://trichotomy.ca/index.php\">Home</A>.<BR>\n" . " View Perl <A HREF=\"http://trichotomy.ca/cgi-bin/printcode.pl?filename=c2f.pl\">Source Code</A>.<BR>\n" . " <FONT SIZE=\"-1\">C2F code copyright 2001 Sean C. Nichols</FONT>\n" . " </FONT></BODY>\n" . "</HTML>\n";