Perl test data FAQ: How can I store some sample/test data with my source code in Perl?
Answer: With Perl it's very easy to store some sample data in the same file as your Perl source code. Assuming you're creating a "main" Perl program (not a Perl module) you can use the special __END__
operator, and then include your data after that operator, as shown in my sample code below. You can then access that data using the main::DATA
operator inside of a while
loop.
Here's a quick sample program:
#!/usr/bin/perl while (<main::DATA>) { print $_; } __END__ Four score and seven years ago our fathers did x, y, and z
Using __DATA__ or __END__
I've read that you're supposed to use the string __DATA__
when enclosing data at the end of a Perl module and __END__
when you want to include data in a separate, standalone Perl program, but I just noticed that you can also use the string __DATA__
instead of __END__
in a main program. Typically I just use this approach to test my program, or use it as a convenient way to share my code and some sample data with someone else, so I haven't ever tried it in a reusable module.