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