in reply to Static Data ("__DATA__" vs. "our")

I think the reason __DATA__ is frequently used on PerlMonks (probably more than in real code) is because it's particularly well-suited for giving sample code. Many questions here are about how to process data from a sequential file, and putting the data into a __DATA__ section gives file semantics for operating on the data, but without having to include in your post "Now put this data into x.in and then run the program with standard input redirected from x.in".

Replies are listed 'Best First'.
Re: Re: Static Data ("__DATA__" vs. "our")
by davido (Cardinal) on Sep 18, 2003 at 20:16 UTC
    To similar ends, __DATA__ can also be used to test code. If you want to verify that a particular file format is being handled correctly by your program, either use an external file, or just include an example of the file's format as the __DATA__ section of the code.

    I haven't tried this, but it's possible that another use is to get clever and redirect STDIN to __DATA__. With that technique, you should be able to provide hard-wired simulated user interaction to automate testing. Say, for example, you want to test some portion of the code that requires that the user jump through several hoops before that portion of the code is executed. Just temporarily redirect STDIN to __DATA__ and then restore it as you get to that key section of code. Then hardwire into the __DATA__ section the keystrokes that will get you there. Just an untested thought. ;)

    Dave

    "If I had my life to do over again, I'd be a plumber." -- Albert Einstein