Hi perlmonks!

I was coming back to perl coding recently, and I have doubts about a couple of things concerning "exiting my program with die or exit while another file is opened".

I finished writing a ~1k lines script which is "reading files, checking stuffs, reporting errors with print() and exiting in case of blocking error" and I figured I had to add a log file to make it easier to use.

My 2 questions are :

1/ What is the best way to deal with it? I already thought about it and cam with several ideas:

- write a subroutine print_log() to replace my print() information text. The drawback of it is that the log file is opened and closed a lot of time and I'm afraid about performances

- use a global filehandle and close the file at the very end of the program. The drawback here is that I've always heard "close what you open", so I'm not sure what would happen if my program exits before my close() command because of other reasons such as another file that cannot be opened (the famous "open $bar or die")

2/ Is it really a problem to have one file left opened before exiting the program? (is it dangerous?)

I probably miss easier solutions to deal with log file writing, and I am eager to learn any good habit to make my code better.

Thank you


In reply to die command while other files are opened by hatz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.