It was surprising to me, also, that one must add a "\n" to one's programs to see the output as it is printed. Typing 'perldoc perlfaq5' from the command line explains why.
It turns out that the need to add a "\n" is an artifact of Larry Wall choosing to write perl in C. Perldoc explains that
The C standard I/O library (stdio) normally buffers characters set to devices...Any time you use print() or write() in Perl, you go through this buffering...Serial devices (e.g., modems, terminals) are normally line buffered, and stdio sends the entire line when it gets the newline.
The more I learn about Perl, the more I think that to really know Perl one must know the language that Perl is written in, C. Moreover, I think that, even aside from portability problems, Perl would not have been Perl if Larry had chosen to write it in Lisp or Pascal. Much of what we think of as Perlish is really C-ish.
| [reply] |
| [reply] |