http://qs321.pair.com?node_id=314638

zentara has asked for the wisdom of the Perl Monks concerning the following question:

I learned from some older books, and part of the conventional wisdom was to chomp all input, but I was looking at an example today, and it looks like some kind of "autochomp" is occurring. For instance, in the following code, $data clearly matches 2, but the 2 still has a newline on it, since when I print it without a newline, the newline is there. So why does "$data == 2" match? I would expect the hidden newline to interfere. I would expect "$data =~ /2/" to match; but == matching dosn't seem right to me. What am I missing?
#!/usr/bin/perl use strict; use warnings; while (my $data = <DATA>) { #chomp $data; print $data; if ($data == 2){print "->got 2\n"} } print "Enter a 2\n"; my $input = <>; if ($input == 2){print "->got 2\n"} __DATA__ 1 2 3 4