use warnings; use atrict; open MYFILE, '<', $data_file or die "Could not open '$data_file' because $!"; my $energy; while ( ) { if ( /\bENERGY\b/ ) { ++$energy; next; } my ( $key, @fields ) = grep $_, split; for my $field ( @fields ) { print "$key $field $energy\n"; } }