Perl脚本用于计算总薪酬,输出仅显示零。

时间:2014-03-04 04:07:31

标签: linux perl calculator

我在Perl课程中,这是一项任务。我们应该创建一个简单的奖金计算器脚本,以及另一个任务是总薪酬计算器。用户将输入名称,X和Y.X和Y将相乘,以获得Z的最终值。

然而,当我这样做时,我会得到零和空白。这是我的剧本:

#!/usr/bin/perl
#bonus.cgi - calculates a bonus amount and creates a dynamic Web page
#that contains form data and a bonus amount
print "Content-type: text/html\n\n";
use CGI qw(:standard -debug);

#prevent Perl from creating undeclared variables
use strict;

#declare variables
my ($name, $sales, $rate, $bonus);

#assign values to variables
$name = param( ' Salesperson' );
$sales = param( ' Sales' );
$rate = param( ' Rate' );

#calculate bonus amount
$bonus = $sales * $rate;

#create Web page
print "<HTML>\n";
print "<HEAD><TITLE>Patton Industries</TITLE><BASEFONT SIZE=5></HEAD>\n";
print "<H1>Bonus Calculation</H1>\n";
print "<BODY>\n";
print "Salesperson: $name<BR>\n";
printf "Your bonus is \$%.2f. <BR><BR>\n", $bonus;
printf "You entered a sales amount of \$%.2f and a  \n", $sales;
printf "bonus rate of  %.1f%%.<BR>\n", $rate * 100;
print "</BODY>\n";
print "</HTML>\n";

为什么结果(当我点击提交时)无论我输入的数字都是零?谢谢你们。

2 个答案:

答案 0 :(得分:0)

你的问题在这里:

#assign values to variables
$name = param( ' Salesperson' );
$sales = param( ' Sales' );
$rate = param( ' Rate' );

这些html元素名称前面有空格。我怀疑你有<input name=" Salesperson">。如果你这样做,你应该删除前面的空格。

此外,没有必要预先声明您的变量。而是在进行第一次分配时进行初始化。 my $name = param('Salesperson');

答案 1 :(得分:0)

您使用该模块错误。

   Add 
   my $q = CGI->new;

   change 
   $name = $q->param( ' Salesperson' );

阅读CGI Perldoc.perl.org