home *** CD-ROM | disk | FTP | other *** search
- <HTML>
- <HEAD><TITLE>PerlScript sample: RPN Calculator</TITLE></HEAD>
- <BODY BGCOLOR="#FFFFFF" TOPMARGIN=8>
-
- <!--
- ActiveState PerlScript sample
- PerlScript: The coolest way to program custom web solutions.
- -->
-
- <TABLE CELLPADDING=0 BORDER=3 CELLSPACING=0>
- <TR VALIGN=TOP ><TD>
- <A NAME="TOP"><IMG SRC="PSBWlogo.gif" WIDTH=400 HEIGHT=48 ALT="The power of PerlScript!" BORDER=2></A><P>
- </TD></TR></TABLE>
- <HR>
-
- <FONT FACE=ARIAL SIZE=3> <!-- global default -->
-
- <SCRIPT LANGUAGE="PerlScript">
- $flagNewNum = 1;
- @stack = 0;
-
- sub NumPressed($)
- {
- my $num = $_[0];
- my $Keypad = $window->document->Keypad;
- if ($flagNewNum) {
- $flagNewNum = 0;
- push @stack, $Keypad->Readout->{'Value'};
- $Keypad->Readout->{'Value'} = $num;
- } else {
- $Keypad->Readout->{'Value'} .= $num;
- }
- }
-
- sub Decimal_onClick()
- {
- my $Keypad = $window->document->Keypad;
- if ($flagNewNum) {
- $flagNewNum = 0;
- $Keypad->Readout->{'Value'} = "0.";
- } else {
- $_ = $Keypad->Readout->{'Value'};
- $Keypad->Readout->{'Value'} = $_ . '.' if (/\./);
- }
- }
- sub Decimal_onclick()
- {
- Decimal_onClick()
- }
-
- sub Plus_onClick()
- {
- $flagNewNum = 1;
- $window->document->Keypad->Readout->{'Value'} += pop @stack;
- }
- sub Plus_onclick()
- {
- Plus_onClick()
- }
-
- sub Minus_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $flagNewNum = 1;
- $Keypad->Readout->{'Value'} =
- (pop @stack) - $Keypad->Readout->{'Value'};
- }
-
- sub Minus_onclick()
- {
- Minus_onClick()
- }
-
- sub Multiply_onClick()
- {
- $flagNewNum = 1;
- $window->document->Keypad->Readout->{'Value'} *= pop @stack;
- }
-
- sub Multiply_onclick()
- {
- Multiply_onClick()
- }
-
- sub Divide_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $flagNewNum = 1;
- $Keypad->Readout->{'Value'} =
- (pop @stack) / $Keypad->Readout->{'Value'};
- }
-
- sub Divide_onclick()
- {
- Divide_onClick()
- }
-
- sub SquareRoot_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $flagNewNum = 1;
- $Keypad->Readout->{'Value'} =
- sqrt($Keypad->Readout->{'Value'});
- }
-
- sub SquareRoot_onclick()
- {
- SquareRoot_onClick()
- }
-
- sub Square_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $flagNewNum = 1;
- $Keypad->Readout->{'Value'} =
- $Keypad->Readout->{'Value'} * $Keypad->Readout->{'Value'};
- }
-
- sub Square_onclick()
- {
- Square_onClick()
- }
-
- sub Neg_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $Keypad->Readout->{'Value'} =
- -($Keypad->Readout->{'Value'});
- }
-
- sub Neg_onclick()
- {
- Neg_onClick()
- }
-
- sub Percent_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $flagNewNum = 1;
- $Keypad->Readout->{'Value'} = ($Keypad->Readout->{'Value'}) / 100;
- }
-
- sub Percent_onclick()
- {
- Percent_onClick()
- }
-
- sub Enter_onClick()
- {
- my $Keypad = $window->document->Keypad;
- $flagNewNum = 1;
- push @stack, $Keypad->Readout->{'Value'};
- }
-
- sub Enter_onclick()
- {
- Enter_onClick()
- }
-
- </SCRIPT>
-
-
- <form action="" Name="Keypad">
- <TABLE>
- <B>
- <TABLE BORDER=2 WIDTH=50 HEIGHT=60 CELLPADDING=1 CELLSPACING=5>
- <CAPTION ALIGN=top>
- <b>RPN Calculator</b><p>
-
- </CAPTION>
- <TR>
- <TD COLSPAN=3 ALIGN=MIDDLE><INPUT NAME="ReadOut" TYPE="Text" SIZE=24 VALUE="0" WIDTH=100%></TD>
- <TD></TD>
- <TD><INPUT NAME="Square" TYPE="Button" VALUE=" sqr " ></TD>
- <TD><INPUT NAME="SquareRoot" TYPE="Button" VALUE=" sqrt " ></TD>
- </TR>
- <TR>
- <TD><INPUT NAME="Seven" TYPE="Button" VALUE=" 7 " onClick="NumPressed(7);"></TD>
- <TD><INPUT NAME="Eight" TYPE="Button" VALUE=" 8 " onClick="NumPressed(8);"></TD>
- <TD><INPUT NAME="Nine" TYPE="Button" VALUE=" 9 " onClick="NumPressed(9);"></TD>
- <TD></TD>
- <TD><INPUT NAME="Neg" TYPE="Button" VALUE=" +/- " ></TD>
- <TD><INPUT NAME="Percent" TYPE="Button" VALUE=" % " ></TD>
- </TR>
-
- <TR>
- <TD><INPUT NAME="Four" TYPE="Button" VALUE=" 4 " onClick="NumPressed(4);"></TD>
- <TD><INPUT NAME="Five" TYPE="Button" VALUE=" 5 " onClick="NumPressed(5);"></TD>
- <TD><INPUT NAME="Six" TYPE="Button" VALUE=" 6 " onClick="NumPressed(6);"></TD>
- <TD></TD>
- <TD ALIGN=MIDDLE><INPUT NAME="Plus" TYPE="Button" VALUE=" + " ></TD>
- <TD ALIGN=MIDDLE><INPUT NAME="Minus" TYPE="Button" VALUE=" - " ></TD>
- </TR>
- <TR>
- <TD><INPUT NAME="One" TYPE="Button" VALUE=" 1 " onClick="NumPressed(1);"></TD>
- <TD><INPUT NAME="Two" TYPE="Button" VALUE=" 2 " onClick="NumPressed(2);"></TD>
- <TD><INPUT NAME="Three" TYPE="Button" VALUE=" 3 " onClick="NumPressed(3);"></TD>
- <TD></TD>
- <TD ALIGN=MIDDLE><INPUT NAME="Multiply" TYPE="Button" VALUE=" * " ></TD>
- <TD ALIGN=MIDDLE><INPUT NAME="Divide" TYPE="Button" VALUE=" / " ></TD>
- </TR>
- <TR>
- <TD><INPUT NAME="Zero" TYPE="Button" VALUE=" 0 " onClick="NumPressed(0);"></TD>
- <TD><INPUT NAME="Decimal" TYPE="Button" VALUE=" . " ></TD>
- <TD COLSPAN=3></TD>
- <TD><INPUT NAME="Enter" TYPE="Button" VALUE="Enter"></TD>
- </TR>
- </TABLE>
- </TABLE>
- </B>
- </FORM>
- <BR><BR>
- </FONT>
- <HR>
- <FONT SIZE=2>
- If this sample doesn't work, download <A HREF="http://www.microsoft.com/ie">Internet Explorer 3.0</A> now.
- </FONT>
- <TABLE BORDER=0 CELLPADDING=3 CELLSPACING=0 width=600>
- <TR VALIGN=TOP>
- <TD ALIGN=RIGHT>
- <FONT FACE="Arial, Helvetica" SIZE="1">
- <B>Best experienced with<BR>
- <A HREF="http://www.microsoft.com/ie" TARGET="_top"><img src="ie_animated.gif" width="88" height="31" border="0" alt="Microsoft Internet Explorer" vspace="5"></a>
- <BR>Click here to start.</B>
- </FONT></TD>
- </TR>
- </TABLE>
-
- </BODY>
- </HTML>
-
-
-
-