in reply to Perl only prints complete lines?
Of course for your small program, it really does not matter but once you use external modules whose behaviour may or may not be influenced by your twiggling of Perl's magickal variables, you should think twice.
This goes even more if you write modules or sub-routines yourself. You really do not want to export these changes beyond these modules or sub-routines.
Suppose you have written a nice logging-to-disk routine/module and you wish to make sure all lines come out as quick as possible in the right order, so you globally autoflush your print to the log file. If someone else uses your module and he writes to disk a huge number of very short lines (say only a few bytes each), then each write would be done separately which will slow down his program to a crawl and he will blame Perl for being such a slow language; never suspecting that his use of your logging-module is the culprit. Limiting your autoflush to your own sub-routine/module would avoid such thing from happening.
CountZero
A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James
|
|---|