No such thing as a small change | |
PerlMonks |
Input problem with Enter key...by davido (Cardinal) |
on Nov 07, 2016 at 01:02 UTC ( [id://1175393]=note: print w/replies, xml ) | Need Help?? |
In list context the file input operator (<...>) reads an entire file, stopping when it reaches EOF (end of file). Typical file handling does not equate "newline" (\n) to indicate EOF. By wrapping $input in parenthesis, you are implying to Perl that the item on the lefthand side of the = assignment operator is a list. That puts <STDIN> into list context, so the entire file is slurped in. But what is the entire file, when dealing with a terminal? Under linux environments one can inject an EOF in terminal input by hitting ctrl-D. This may vary by operating system. If your line was this instead:
...then the righthand side of the assignment is cast in scalar context. In scalar context, the <> operator reads a single record. Unless it's been changed elsewhere in the program, the record separator is newline. So when you type something and hit enter, you effectively send one record through STDIN to $input. Dave
In Section
Seekers of Perl Wisdom
|
|