Q:

Perl script not running conditional statements?

I know I'm a newb in Perl so please excuse my stupid mistakes. I am making a calculator that takes user input, but it isn't working. It runs fine and dandy until the if statement, when it reaches the if statement it just ends the program. I looked through forums and books but couldn't find anything.
use warnings;

print "number\n";
$number = <STDIN>;
# Asks the user for what number to calculate.

print "Second number\n";
$secnumber = <STDIN>;
# Asks the user for second number to calculate the first number with

print "Calculation\n Multiplication  x\n Addition  +\n Substraction  -\n ";
$calculation = <STDIN>;
# Asks the user for which calculation to make.

if ($calculation eq "x") {
    print "$number" . 'x' . "\n$secnumber" . '=' . "\n" . ($number * $secnumber);
} elsif ($calculation eq "+") {
    print "$number" . '+' . "\n$secnumber" . '=' . "\n" . ($number + $secnumber);
} elsif ($calculation eq "-") {
    print "$number" . '-' . "\n$secnumber" . '=' . "\n" . ($number - $secnumber);
}
# Displays the calculation and answer.

A:

The value assigned to $calculation will contain a new line character. So on a unix type system the value assigned to $calculation would actually be +\n
you need to use the chomp function which will remove the new line character. you can find more information on chomp with this URL http://perldoc.perl.org/functions/chomp.html
You can apply chomp in two ways. You can have it chomp the new line at the time of reading it 
chomp ($calculation = <STDIN>);

Or you can do it after the assignement.
$calculation = <STDIN>;
chomp ($calculation);

Also as a new user to Perl, i would recommend as well as using the warning pragma, you should also use the strict pragma to help you keep good maintainable code.
use warnings;
use strict;

A:

You need to do a chomp($calculation) before the if stmt and after the initial assignment operation. (the $calulation = <STDIN>;).

