in reply to What i doing wrong

use strict and warnings

Replies are listed 'Best First'.
Re^2: What i doing wrong
by JavaFan (Canon) on Apr 01, 2012 at 23:00 UTC
    That will him add my's in front of the variables, quote the a, and (maybe) use "eq" (but he's already done that, and that didn't do what he expected it to do).

    It's not going to solve his error (not chomping).

    Using strict and warnings isn't a silver bullet. In a rare case, it solves a problem. In that rare case, posting "use strict; use warnings;" is a useful answer. Most of the time, it's not.

    This is a "most of the time" case.

      I decided to test your assertion that use strict;use warnings; would not help this OP. When I ran the OP's code with strict and warnings after adding 'my' where needed I got the following:

      Bareword "a" not allowed while "strict subs" in use at 962926.pl line +10. Execution of 962926.pl aborted due to compilation errors.

      That is one thing it would have helped with. So I added quotes to get the code below. Have a look at the warnings I got then. Clearly would have been helpful. Probably a 'good choice'.

      #!/usr/bin/perl use strict; use warnings; print "what is your name\n"; my $name = <STDIN>; print "hello $name"; print "select letter\n"; my $select = <STDIN>; if ($select == 'a') { print "good choice\n"; } else { print "bad choice\n"; }
      Argument "a" isn't numeric in numeric eq (==) at 962926.pl line 10, <S +TDIN> line 2. Argument "a\n" isn't numeric in numeric eq (==) at 962926.pl line 10, +<STDIN> line 2. good choice