for (@DATA) { # this transforms @DATA, destructive $_ = [map {/^\s*(.*?)\s*$/} split ':', $_, 2]; } #### for (@DATA) { printf "FIRST TERM - %s\nSECOND TERM - %s\n", @$_; } #### for (@DATA) { $_ = join ' ', split; # normalize whitespace $_ = [split /[:\s]/, $_, 2]; }