Actually output of STDOUT when directed to the terminal would be line buffered, buffer flushing is useful when your output is directed to a pipe as is the case with the buff1.pl program where the autoflush and the $| variable were set to non-zero values. Check
Perl Documentation for $|..
In buff2.pl however, since the output is directed to STDOUT right away then probably flushing is not warranted...
Excellence is an Endeavor of Persistence.
Chance Favors a Prepared Mind.