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); #### $VAR1 = [ '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' ];