Comment out the line no strict 'refs' and see your open go down in flames.
The die at the open will never have an effect because of operator precedence.
Feed it a falsified filename an see for yourself. The die at the close
has the same problem.
Essentially your program seems to work because you have
turned off the error reporting.