Mmm. The only reason to read the original file line by line would be that it's very large, meaning that data processing time is likely to be significant, meaning in turn that there's an increased risk of the process being interrupted. Given that the process may be interrupted, your script can't be designed so that an interruption loses you large chunks of data. I would agree that in this instance, it's necessary to create a temporary file.
in reply to Perl Best Practices book: is this one a best practice or a dodgy practice?