in reply to Re^3: Making a variable from a number in front of a string
in thread Making a variable from a number in front of a string

The DATA file handle is actually even a bit cooler than that. To set this up, Perl opens the program for read and then seeks to the first byte after the __DATA__ line. Reading from DATA means that you are actually reading the program file.

It is possible for the program to "read itself", i.e.:

#!/usr/bin/perl use warnings; use strict; ## DEMO of reading myself seek (DATA,0,0) or die "unable to seek $!"; print while <DATA>; __DATA__ some data would go here
To re-read the DATA section, you could use a tell() to figure out where the initial DATA byte is and then later seek back to that initial byte offset.