The argument that I hear the most is that chaining methods like this reduces typing. While that is true, I think it's a very bad reason for actually doing so. Using only globals and no strict is another way to save three characters per first use. Not checking open's return value is another way of typing less. It seems that length reduction and bad style often go together.
Using subroutines is a way to save characters. So are foreach loops. You can argue it both ways.
In many cases I'd agree with Paul Graham that Succinctness is Power.
I think this is going to be one of those issues that people can agree to disagree over. The idiom has always seemed very natural and clear to me.