首页 > 解决方案 > Perl 如果带有“+”、“-”、“*”、“/”

问题描述

我有这个代码:

print ("First Value: ");
$valor1 = <STDIN>;
print ("Second Value: ");
$valor2 = <STDIN>;
print ("Operator: ");
$op = <STDIN>;
if ($op == "+")
{
    $total = $valor1 + $valor2;
    print ($total);
}

elsif ($op == "-")
{
    $total = $valor1 - $valor2;
    print ($total);
}

elsif ($op== "*")
{
    $total = $valor1 * $valor2;
    print ($total);
}

elsif ($op == "/")
{
    $total = $valor1 / $valor2;
    print ($total);
}

他正确阅读了所有内容,但是当他输入条件时,如果用户键入“-”、“/”或“*”,他总是输入第一个条件并求和,我想知道原因。

标签: perl

解决方案


总是 use strict;use warnings;

这会给你警告:

在 test.pl 第 9 行第 3 行的数字 eq (==) 中,参数“+”不是数字。

这就是为什么你会得到你不期望的行为。

您应该使用eq(并考虑输入中的换行符)。


推荐阅读