I think "normal use" is the point. What is normal to me is that output from somewhere else i am reading in always has "\n" so I can use chop - it is simply unheard of in a unix environment for programs to accidentally forget a "\n" unless something is very wrong. So if the last line doesn't have a "\n" - I actually need the program to break somewhere rather than hide the fault and functionally is as good as anywhere - at least it'll get picked up. chop has the advantage of not hiding the problem (it chops something off at least and if that's functionally incorrect it'll show up during testing) in habitual use whereas with chomp you would need to add an "or die" - that's more dangerous because it's easy to forget. It may not matter in your working environment but it sure matters in the last two industries I worked in - mobile telephone billing and market data - you just do NOT want to be hiding unterminated files in any of my working environments going back the last ten years. Before that I used C so the problem didn't arise.