【发布时间】:2014-10-16 18:11:43
【问题描述】:
我有一个包含多个 3 个 if 语句的脚本,具体取决于“案例”所属的范围会更改将进行的计算。我刚开始学习 perl,我认为问题在于我的最后一个输入不是 while 块的一部分,但我不知道如何将其保留在内部而不会出现大括号错误
[flata@localhost bin]$ casespacked.pl
Please enter your name: done
[flata@localhost bin]$ casespacked.pl
Please enter your name: bill
Please enter pay rate: 10
Please enter hours worked: 20
Please enter cases packed: 4
Name: bill, Hours: 20, Regular Pay: 200, Bonus Pay: 20, Total Pay: 220
Please enter your name: done
Please enter pay rate:^C
循环按它应该的方式工作,并且会继续产生我需要的结果,但它不会正确退出,只有当你在第一次询问你的名字时输入 done
#!/usr/bin/perl
print "Please enter your name: ";
chop( my $Name = <stdin> );
while ( $Name ne "done" ) {
print "Please enter pay rate: ";
chop( my $Rate = <stdin> );
print "Please enter hours worked: ";
chop( my $Hours = <stdin> );
print "Please enter cases packed: ";
chop( my $Cases = <stdin> );
if ( $Cases >= 1 && $Cases <= 9 ) {
$Bonus = ( $Cases * 5 );
$Pay = ( $Rate * $Hours );
$Total = ( $Bonus + $Pay );
}
if ( $Cases >= 10 && $Cases <= 20 ) {
$Bonus = ( $Cases * 8 );
$Pay = ( $Rate * $Hours );
$Total = ( $Bonus + $Pay );
}
if ( $Cases >= 20 ) {
$Bonus = ( $Cases * 10 );
$Pay = ( $Rate * $Hours );
$Total = ( $Bonus + $Pay );
}
{
print "Name: $Name, Hours: $Hours, Regular Pay: $Pay, Bonus Pay: $Bonus, Total Pay: $Total\n";
}
print "Please enter your name: ";
chop( my $Name = <stdin> );
}
即使我移动打印“请输入您的姓名:”; up 所以它在最后一个 if 语句之后,它不会退出应该仍然在 while 循环内?还是我不明白
【问题讨论】:
标签: perl while-loop