use strict; use warnings; use Data::Dumper; my $string = "QB Carson Palmer RB Chris Ivory RB Eddie Lacy WR A.J. Green WR John Brown WR Davante Adams TE Martellus Bennett FLEX Jeremy Hill DST Panthers"; my @words = split ' ',$string; my $i = 0; while ($i <= $#words) { if ($words[$i] =~ m/^[A-Z]{2,4}$/) { $words[$i++] .= ' ->'; } else { $words[$i-1] .= ' ' . splice @words,$i,1 } } print Dumper(\@words);