#!/usr/bin/perl use strict; use warnings; my @data_positions = tell(DATA); while (){ if (/^__DATA__$/) { push @data_positions, tell(DATA); } } my @fh_positions; open(my $fh, '<', $0) or die; while (<$fh>){ if (/^__DATA__$/) { push @fh_positions, tell($fh); } } print("@data_positions\n"); print("@fh_positions\n"); __DATA__ ab __DATA__ ab __DATA__ ab __DATA__ lotsa junk nothing #### 389 401 414 426 389 403 419 433