in reply to reading the __DATA__

"__DATA__", or its synonym(1) "__END__" , terminates the parsing of the rest of the script file, if it's found on a line of its own. So it's always at the end of the script, because it says that it is the end of the script!

The only exception can be where you have such strings in a literal multiline string, either quoted or in a here-doc; or when used as a here-doc delimiter. Examples:

#!/usr/bin/perl -w print <<'__END__'; This is a here-doc __DATA__ But it's not over yet! __END__ print "This really is the __END__ "; __DATA__ print "See?\n";
resulting in:
This is a here-doc __DATA__ But it's not over yet! This really is the __END__
I hope this example makes it a bit clear?

(1) Yes it is legal to do:

print <DATA>; __END__ one two
Works, too.