use Modern::Perl; my $sequence; while () { if (/ENERGY/) { $sequence++; next; } my ( $first, @fields ) = grep { $_ } split; say "$first $_ $sequence" for @fields; } __DATA__ 536 ENERGY = -176.2 gag 1 0 2 0 2 1 3 533 3 2 4 532 536 ENERGY = -175.9 gag 1 0 2 0 2 1 3 533 3 2 4 532