in reply to "open" Best Practices

G'day haukex,

++ Good write up and definitely handy for linking: I've certainly written similar information in dozens of replies over the years.

"use autodie qw/open/;  # at the top of your code"

Possibly out of scope for this; but, it may be worth mentioning the lexical nature of autodie.

I've worked on a lot of production code that uses in-house I/O error handling; e.g. the custom handling includes logging, email alerts, popup messages, and so on. At times, I don't want this for a small part of code I've added; however, I also don't want to interfere with the existing, custom error handling.

A very rough example might be something like:

... use InHouse::IO::ErrorHandling; ... open ...; # in-house handling here ... { use autodie; ... open ...; # autodie handling here ... } ... open ...; # in-house handling here ...

— Ken