Pretty much everything you have there is buffered in some way or another. Don't forget that you can turn this off using $. It's also worth mentioning that's its a bad idea to use send or recv on a filehandle. :-D For syswrite and sysread, buffering is also optional.