#!/usr/bin/env perl use strict; use warnings; use FindBin qw($Bin); use File::Spec::Functions qw(catfile); use File::ReadBackwards; my $bw = File::ReadBackwards->new(catfile($Bin,$0)) or die "Can't read $0: $!\n"; while( defined(my $line = $bw->readline) ) { last if $line =~ m/^__(?:END|DATA)__/; print $line; } __DATA__ 1234 5678 9ABC DEFG