__END__ behaves like __DATA__ in the toplevel script (but not in files loaded with "require" or "do") and leaves the remaining contents of the file accessible via "main::DATA". #### $ cat data_eq_end.pl #!/usr/bin/perl use warnings; use strict; print for ; __END__ 1 2 3 $ perl data_eq_end.pl 1 2 3